, October 26, 2021

0 kết quả được tìm thấy

Tự học ngôn ngữ Dart: Kiểu dữ liệu numbers, string, booleans

  • Đăng bởi  Groot
  •  Jul 07, 2021

  •   8 min reads
Tự học ngôn ngữ Dart: Kiểu dữ liệu numbers, string, booleans

Trong bài viết này chúng ta sẽ đi tìm hiểu về các kiểu dữ liệu trong ngôn Dart: numbers, strings, booleans, lists, sets, và maps.

Nếu bạn muốn tìm hiểu thêm về ngôn ngữ Dart, bạn có thể xem thêm video này của team mình làm trên Youtube nhé! ^^

1. Ngôn ngữ Dart: Kiểu numbers - num Type

Nếu bạn muốn một biến có giá trị là số thì chúng ta phải khai báo với kiểu dữ liệu num.

Syntax cơ bản của nó như sau:

Kiểu numbers - num Type

Hãy nhìn vào ví dụ dưới đây:

main() {
  num firstNumber = 5;
  num secondNumber = 5.1;
  num thirdNumber = firstNumber;

  // Driver Code
  print(firstNumber);
  print(secondNumber);
  print(thirdNumber);
}

Output:
5
5.1
5

Trong ngôn ngữ Dart, numbers được chia nhỏ hơn thành 2 kiểu phụ:

  1. Integers (int) - số nguyên.
  2. Doubles (double) - số lẻ.

Cả intdouble đều là kiểu con của num.

Nào bây giờ chúng ta sẽ xem qua từng kiểu một cách chi tiết hơn nhé!

1.1 Số nguyên - Integers

Số nguyên là tất cả những số không có dấu thập phân.

Trong đoạn code bên dưới, chúng ta sẽ khai báo hai biến của kiểu int. Biến thứ nhất là một số nguyên đơn giản trong khi đó biến thứ hai là là một số có sáu chữ số.

Syntax cơ bản sẽ như sau:

Integers

Hãy xem qua ví dụ dưới đây:

main() {
  int simpleInteger = 1;
  int hex = 0xDA34F;
  int integer = simpleInteger;

  // Driver Code
  print(simpleInteger); 
  print(hex);
  print(integer);
}

Output:
1
893775
1

1.2 Số lẻ - Doubles

Số lẻ là những số có chứa dấu thập phân

Trong đoạn code dưới đây, chúng ta sẽ khai báo hai biến của kiểu double . Biến thứ nhất là một số lẻ đơn giản, biến thứ hai là một số lẻ có mũ.

Syntax sẽ là:

Số lẻ - Doubles

Hãy nhìn vào ví dụ dưới đây:

main() {
  double simpleDouble = 1.1;
  double exponents = 1.42e5;

  // Driver Code
  print(simpleDouble);
  print(exponents);
}

Output:
1.1
142000.0

Đối với phiên bản Dart 2.1, các số nguyên sẽ tự động được chuyển sang số lẻ khi cần thiết. Khi bạn chạy đoạn code bên dưới, output sẽ hiển thị 1.0 thay vì 1.

main() {
  double integerLiteral = 1;
  
  print(integerLiteral);
}

Output: 1.0

Nếu đoạn code trên chạy trên phiên bản Dart cũ hơn 2.1 thì trình biên dịch sẽ trả về kết quả lỗi.

2. Ngôn ngữ Dart: Kiểu strings (chuỗi)

Kiểu strings trong ngôn ngữ Dart là một chuỗi các đơn vị mã UTF-16. UTF là viết tắt của từ “Unicode Transformation Format”.

Unicode là bộ mã chuẩn quốc tế được thiết kế để dùng làm bộ mã duy nhất cho tất cả các ngôn ngữ khác nhau trên thế giới. Nó là một tập hợp các ký tự, trong đó mỗi ký tự là một đơn vị mã duy nhất.

2.1 String Literals

Ký tự string chỉ đơn giản là văn bản được gói gọn trong dấu ngoặc đơn hoặc ngoặc kép.

Hãy xem những cách khác nhau để tạo ký tự string trong ngôn ngữ Dart:

main() {
  // Single Quotes
  print('Using single quotes');

  // Double Quotes
  print("Using double quotes");

  // Single quotes with escape character \
  print('It\'s possible with an escape character');

  // Double quotes
  print("It's better without an escape character");
}

Output:
Using single quotes
Using double quotes
It's possible with an escape character
It's better without an escape character

Tất cả những gì chúng ta vừa làm ở đoạn code trên đó chính là in kiểu string bằng nhiều kỹ thuật khác nhau. Tất cả mọi thứ đều suôn sẻ ngoại trừ dòng code print('It\'s possible with an escape character');. Chúng ta cần điều chỉnh một số thứ ở dòng code này.

Như các bạn thấy, ở dòng này chúng ta dùng dấu ngoặc đơn để tạo chuỗi. Nhưng bên trong chuỗi cũng có chứa một dấu ngoặc đơn ở từ It's. Điều này sẽ gây hiểu lầm cho trình biên dịch rằng chúng ta muốn kết thúc chuỗi tại dấu ngoặc đơn đó.

Thế nên để giải quyết vấn đề, chúng ta cần sử dụng ký tự \ để trình biên dịch hiểu là phải thoát chức năng cho dấu ngoặc đơn đó. Chuỗi của chúng ta sẽ được in như bình thường.

2.2 Khai báo biến của chuỗi

Nếu bạn muốn khai báo một biến có chứa giá trị của kiểu String thì hãy sử dụng syntax sau:

Khai báo biến của chuỗi

Áp dụng syntax đó vào code thực tế trong Dart:

main() {
    String s1 = "A String";

    print(s1);
} 

Output: A String

3. Ngôn ngữ Dart: String Interpolation - phép nội suy chuỗi

3.1 Phép kết hợp chuỗi - String Concatenation

Để kết hợp hai hay nhiều chuỗi lại với nhau thì ta sử dụng toán tử +.

main() {
  String s1 = "First half of the string. ";
  String s2 = "Second half of the string";
  print(s1 + s2);
}

Output: First half of the string. Second half of the string

Đoạn code bên trên khá đơn giản và dễ hiểu phải không? Ở dòng code print(s1 + s2);, chúng ta kết hợp chuỗi thứ nhất s1 với chuỗi thứ hai s2 và sau đó in ra một chuỗi đã được kết hợp lại với nhau.

3.2 Phép nội suy chuỗi - String Interpolation

Phép nội suy chuỗi là khả năng tạo ra những chuỗi mới hoặc chỉnh sửa những chuỗi hiện tại bằng cách gắn vào chúng những biểu thức (expressions). Những biểu thức này đã được đánh giá, và những giá trị của kết quả được chuyển sang chuỗi và kết hợp với chuỗi bao quanh. Phép nội suy chuỗi trong Dart thì ngắn gọn và hiệu quả hơn phép kết hợp chuỗi. Tuy nhiên phép nội kết hợp chuỗi lại đơn giản và linh hoạt hơn.

Ký tự $ trong một chuỗi biểu thị sự bắt đầu của một biểu thức nội suy. Dấu $ có thể được theo sau bởi một id định danh duy nhất không chứa ký tự $.

String Interpolation

Dấu $ cũng có thể được theo sau bởi một biểu thức được phân tách bằng dấu ngoặc nhọn.

String Interpolation

Hãy nhìn vào đoạn code dưới đây để hiểu hơn về cách mà phép nội suy hoạt động

main() {
  String country = "Japan";

  print("I want to visit $country");
}

Output: I want to visit Japan

Trong đoạn mã trên, chúng ta đã khai báo một giá trị cho biến country dựa trên quốc gia mà bạn muốn đến.

Thay vì mỗi lần muốn đến một quốc gia khác ta phải thay đổi câu lệnh print , thì tất cả những gì chúng ta phải làm là thay đổi giá trị của biến country được nội suy.

Bây giờ hãy thử gắn một biểu thức toán học vào một chuỗi bên trong dấu ngoặc nhọn.

main() {
  print("The sum of 5 and 3 equals ${5+3}.");
}

Output: The sum of 5 and 3 equals 8.

Trong đoạn code trên, 5+3 là một biểu thức và được trình biên dịch xử lý và dịch thành 8. Cho nên output của chúng ta sẽ là The sum of 5 and 3 equals 8.

3.3 Multiple Lines

Bạn có thể kết hợp các chuỗi lại với nhau bằng cách sử dụng những chuỗi liền kề.

Hãy để ý cách mà bạn sử dụng dấu ngoặc đơn hoặc dấu ngoặc kép.
main() {
  var s1 = 'String '
    'concatenation'
    " works even over line breaks.";
    
  print(s1);
}

Output: String concatenation works even over line breaks.

Khi chúng ta thực hiện dòng code ở trên chúng ta sẽ nhận được một dòng string hoàn chỉnh. String concatenation works even over line breaks.

Còn một cách nữa để tạo ra chuỗi nhiều dòng trong ngôn ngữ Dart. Bạn đơn giản chỉ việc đặt các dòng chuỗi của mình bên trong 3 dấu ngoặc đơn hoặc 3 dấu ngoặc kép.

Hãy xem thử ví dụ bên dưới:

main() {
  var multilineString = """This is a 
multiline string
consisting of 
multiple lines""";

  print(multilineString);
}

Output:
This is a
multiline string
consisting of
multiple lines

4. Ngôn ngữ Dart: kiểu dữ liệu Booleans

Kiểu bool trong ngôn ngữ Dart đại diện cho giá trị boolean. Chỉ có hai đối tượng có kiểu bool dó là truefalse. Trong đoạn code bên dưới, chúng ta khai báo một biến b1 của kiểu bool và gán cho nó một giá trị ban đầu là true.

main() {
  bool b1 = true;
  print(b1);
}

Output sẽ hiện thị: true

Syntax cơ bản để khai báo một biến kiểu bool như sau:

kiểu dữ liệu Booleans

Hiện tại thì bạn chỉ cần biết những kiến thức ở trên về kiểu booleans. Chúng ta sẽ tìm hiểu nhiều hơn khi thảo luận về toán tử và những câu lệnh điều kiện ở các phần sau nhé.

Bài viết cùng seri

Bài viết liên quan

Tìm hiểu regex trong ngôn ngữ Dart qua ví dụ cơ bản

Trích xuất text bất kỳ từ một string cho trước bằng cách sử dụng regex trong Dart...

Tìm hiểu regex trong ngôn ngữ Dart qua ví dụ cơ bản
Top 10 Dart Array method trong Flutter mà bạn nên biết 🎯

Khi làm việc với nhiều kiểu dữ liệu List hoặc Array, tôi phát hiện rất nhiều method có sẵn trong ngôn ngữ Dart rất hữu ích nên tôi muốn chia sẻ....

Top 10 Dart Array method trong Flutter mà bạn nên biết 🎯
Tìm hiểu Iterables và Iterators trong ngôn ngữ Dart

Tôi sẽ giải thích các iterable là gì, khác với iterator như nào và chỉ cho bạn ví dụ thực tế về cách tạo ra iterable của riêng mình....

Tìm hiểu Iterables và Iterators trong ngôn ngữ Dart
Tìm hiểu lập trình bất đồng bộ trong Dart & Flutter

Chúng ta sẽ cùng nhau tìm hiểu lập trình bất đồng bộ trong Dart & Flutter và khám phá sâu hơn cách các asynchronous code patterns....

Tìm hiểu lập trình bất đồng bộ trong Dart & Flutter
Tìm hiểu Keys trong Flutter

Chúng ta không những tìm hiểu công dụng của từng loại Key, mà còn biết khi nào, ở đâu và loại nào thích hợp để giải quyết các vấn đề....

Tìm hiểu Keys trong Flutter
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.