Biến là một đại diện cho vùng địa chỉ nào đó trong bộ nhớ, mà ở đó dữ liệu được
lưu trữ. Tuy nhiên ở đây ta không đề cập đến vấn đề dữ liệu được chứa trong bộ
nhớ như thế nào. Ta chỉ cần biết, biến là một đại diện mang giá trị ta cần tính toán.
Trong AutoIt, một biến hợp lệ phải có tên được bắt đầu với ký tự $ và sau đó là các
ký tự alpha(a-z, A-Z), ký số (0-9) và dấu gạch dưới _. Ví dụ :
$var1 $my_variable $123 $String_temp
$abc@ $love.baby > đây là hai biến không hợp lệ
Để khai báo một biến, biến đó phải được tạo với một trong các từ khóa Global,
Local hay Dim. Các từ khóa này có chức năng giới hạn phạm vi tồn tại và sử dụng
của biến. Ví dụ :
Global $var1, $title
Dim $m, $name
Global: chỉ định khai báo một biến có phạm vi toàn cục. Nghĩa là mọi nơi
trong chương trình đều có thể truy xuất, chỉnh sửa nội dung của biến
này. Và biến này sẽ tồn tại cho đến khi chương trình thoát ra. Ví dụ :
Global $m = "Hello world"
MsgBox(0, "MSG", $m)
_RepText()
MsgBox(0, "MSG", $m)
; định nghĩa hàm
Func _RepText()
$m &= ", " &$m
EndFunc
Đầu tiên ta tạo ra một biến $m và cho hiển thị nội dung của nó là " Hello world".
Sau đó hàm _RepText() được gọi để lặp lại nội dung của biến $m. Hàm MsgBox
thứ hai sẽ hiển thị "Hello world, Hello world". Do $m là biến toàn cục nên ta có
thể sửa đổi tùy ý giá trị của nó.
Local: chỉ định khai báo một biến có phạm vi cục bộ. Tức là nó chỉ được
phép sử dụng, thao tác ở phạm vi giới hạn trong chương trình, thường là
ở bên trong các hàm. Nó sẽ được khởi tạo khi hàm được gọi và sẽ bị
hủy khi hàm kết thúc. Những nơi khác trong chương trình không hề biết
Ví dụ :
; đoạn mã này sẽ duyệt thư mục Temp thay vì thư mục Windows
Global $explore = "Explorer " & @WindowsDir
function()
Run($explore)
Func function()
Dim $explore = "Explorer " & @TempDir
EndFunc
Trong các ví dụ trên, ta thấy rằng việc khai báo một biến có thể kết hợp với việc
khởi tạo giá trị ban đầu cho biến đó. Theo mặc định, nếu bạn không gán giá trị khi
khai báo thì biến đó mang giá trị 0 (nếu sử dụng như một kiểu number) hoặc ""
(nếu sử dụng như một kiểu string).
Dù rằng AutoIt cho phép bạn sử dụng một biến không cần khai báo, nhưng sẽ thật
không hay khi chương trình của bạn có nhiều biến được tạo rải-rác ở nhiều nơi.
Tính trật tự và thống nhất sẽ không đạt hiệu quả vì bạn khó kiểm soát được các đối
tượng của mình trong hàng tá dòng lệnh đan xen nhau. Cũng xin nói thêm, nếu bạn
sử dụng một biến không có khai báo trước đó, tùy trường hợp vận dụng, thì hoặc là
chương trình sẽ báo lỗi, hoặc là biến đó sẽ được tạo tự động với phạm vi cục bộ
(Local). Nếu bạn khai báo một biến Local bên ngoài hàm thì nó vẫn có phạm vi
như Global.
Khi khai báo một biến, bạn nên chỉ định rõ phạm vi là Local hoặc Global, nên hạn
chế dùng Dim. Trừ khi bạn nắm rõ được tất cả các biến trong chương trình của
mình, nhằm tránh các lỗi về việc chỉnh sửa dữ liệu không mong muốn có thể xảy
ra.
KHAI BÁO HẰNG SỐ
Hằng số là một biến mang giá trị cố định và giá trị này chỉ được gán một lần khi
khởi tạo. Bất kỳ thao tác nào cố gắng thay đổi nội dung của hằng số đều là thao tác
không hợp lệ.
Việc khai báo hằng số cũng giống như việc khai báo biến, nhưng bạn cần đặt thêm
từ khóa Const. sau Dim, Global hoặc Local. Có dạng như sau :
dùng List[0], List[1] là ta đang truy cập đến phần tử thứ nhất, thứ hai. Dùng
List[99] là ta đang truy cập đến phần tử thứ 100. Việc sử dụng chỉ mục vượt quá
chỉ mục tối đa cho phép khi khai báo là không hợp lệ.
Muốn lấy một giá trị từ một phần tử trong mảng, ta phải biết được chỉ mục của
phần tử chứa giá trị đó. Ví dụ :
$animal = $List[2] ; $animal sẽ chứa chuỗi "Cat"
MẢNG HAI CHIỀU (MA TRẬN)
Một mảng hai chiều chính là một ma trận được tạo thành bởi hàng và cột. Nếu bạn
đã biết qua Excel thì bảng tính trong Excel chính là một ma trận. Hình thức chung
cho việc khai báo mảng hai chiều cũng tương tự như mảng một chiều, nhưng có
thêm việc khai báo chỉ mục thứ hai. Trong mảng hai chiều, chỉ mục thứ nhất cho
biết hàng và chỉ mục thứ hai là cột Cụ thể là :
<scope> <var_name> [<size_row>][<size_column>]
Trong đó :