Lập trình Dart - Biến

Một biến là "một không gian được đặt tên trong bộ nhớ" để lưu trữ các giá trị. Nói cách khác, nó hoạt động một vùng chứa các giá trị trong một chương trình. Tên biến được gọi là định danh. Sau đây là các quy tắc đặt tên cho một số nhận dạng:

  • Số nhận dạng không được là từ khóa.

  • Số nhận dạng có thể chứa bảng chữ cái và số.

  • Số nhận dạng không được chứa khoảng trắng và ký tự đặc biệt, ngoại trừ dấu gạch dưới (_) và ký hiệu đô la ($).

  • Tên biến không được bắt đầu bằng số.

Nhập cú pháp

Một biến phải được khai báo trước khi nó được sử dụng. Dart sử dụng từ khóa var để đạt được điều tương tự. Cú pháp khai báo một biến như dưới đây:

var name = 'Smith';

Tất cả các biến trong dart lưu trữ một tham chiếu đến giá trị thay vì chứa giá trị. Biến được gọi là tên chứa một tham chiếu đến đối tượng Chuỗi có giá trị là “Smith”.

Hỗ trợ phi tiêu type-checkingbằng cách đặt trước tên biến với kiểu dữ liệu. Kiểm tra kiểu đảm bảo rằng một biến chỉ giữ dữ liệu cụ thể cho một kiểu dữ liệu. Cú pháp tương tự được đưa ra dưới đây:

String name = 'Smith'; 
int num = 10;

Hãy xem xét ví dụ sau:

void main() { 
   String name = 1; 
}

Đoạn mã trên sẽ dẫn đến cảnh báo vì giá trị được chỉ định cho biến không khớp với kiểu dữ liệu của biến.

Đầu ra

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

Tất cả các biến chưa được khởi tạo đều có giá trị ban đầu là null. Điều này là do Dart coi tất cả các giá trị là đối tượng. Ví dụ sau minh họa tương tự:

void main() { 
   int num; 
   print(num); 
}

Đầu ra

Null

Từ khóa động

Các biến được khai báo không có kiểu tĩnh được khai báo ngầm là động. Các biến cũng có thể được khai báo bằng cách sử dụng từ khóa động thay cho từ khóa var.

Ví dụ sau minh họa tương tự.

void main() { 
   dynamic x = "tom"; 
   print(x);  
}

Đầu ra

tom

Final và Const

Các finalconsttừ khóa được sử dụng để khai báo các hằng số. Dart ngăn việc sửa đổi các giá trị của một biến được khai báo bằng từ khóa final hoặc const. Những từ khóa này có thể được sử dụng cùng với kiểu dữ liệu của biến hoặc thay vìvar từ khóa.

Các consttừ khóa được sử dụng để đại diện cho một hằng số thời gian biên dịch. Các biến được khai báo bằng cách sử dụngconst từ khóa hoàn toàn là cuối cùng.

Cú pháp: Từ khóa cuối cùng

final variable_name

HOẶC LÀ

final data_type  variable_name

Cú pháp: const Keyword

const variable_name

HOẶC LÀ

const data_type variable_name

Ví dụ - Từ khóa cuối cùng

void main() { 
   final val1 = 12; 
   print(val1); 
}

Đầu ra

12

Ví dụ - Từ khóa const

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); 
}

Ví dụ trên khai báo hai hằng số, piarea, sử dụng consttừ khóa. Cácarea giá trị của biến là một hằng số thời gian biên dịch.

Đầu ra

The output is 452.15999999999997

Note - Chỉ constcác biến có thể được sử dụng để tính hằng số thời gian biên dịch. Hằng số thời gian biên dịch là những hằng số có giá trị sẽ được xác định tại thời điểm biên dịch

Thí dụ

Dart ném một ngoại lệ nếu cố gắng sửa đổi các biến được khai báo với finalhoặc từ khóa const. Ví dụ dưới đây minh họa tương tự -

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}

Đoạn mã được đưa ra ở trên sẽ gây ra lỗi sau là output -

Unhandled exception: 
cannot assign to final variable 'v2='.  
NoSuchMethodError: cannot assign to final variable 'v2=' 
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) 
#1      main (file: Test.dart:5:3) 
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)