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. Bạn có thể xem thêm bài viết tại đây: series tự học ngôn ngữ Dart 1. Ngôn ngữ Dart: Kiểu numbers –num Type Nếu bạn muốn một biến có giá

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.

Bạn có thể xem thêm bài viết tại đây: series tự học ngôn ngữ Dart

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:

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:

55.15

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:

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:
18937751

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à:

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.1142000.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.0thay 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 quotesUsing double quotesIt's possible with an escape characterIt'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:

Á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 codeprint(s1 + s2);, chúng ta kết hợp chuỗi thứ nhất s1 với chuỗi thứ hai s2và 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ự $.

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.

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 equals8.

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 amultiline stringconsisting ofmultiple lines

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

Kiểu booltrong 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ểubool 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:

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é.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ