Hàn người dùng tự định nghĩa trong
Để định nghĩa
một hàm, bạn phải tuân thủ các qui tắc mà ngôn ngữ lập trình đó hỗ trợ. Với
AutoIt, dạng tổng quát để khai báo và định nghĩa một hàm như sau :
Func <tên_hàm>( <các tham biến> ) <các lệnh nội bộ> . . . . .
Return <giá trị>EndFunc
Giải
thích
Func. . .
EndFunc : là hai từ khóa bắt buộc, có nhiệm vụ chỉ ra điểm bắt đầu và kết thúc
của một hàm
<tên_hàm>
: tên đại diện miêu tả ngắn gọn chức năng của hàm
<các tham
biến> : khai báo một danh sách tên các biến, mỗi biến được ngăn cách với
nhau bằng dấu phẩy. Danh sách này sẽ nhận các dữ kiện được truyền vào để hàm xử
lý. Một hàm có thể không có <các tham biến>, tức danh sách
tham biến sẽ rỗng. Tuy thế, ngay cả khi không có tham biến nào thì bạn vẫn phải
đặt dấu ngoặc đơn vào.
<các lệnh nội bộ> : ở đây bạn chính là thân của hàm. Bạn có thể
thực hiện việc khai báo các biến cục bộ (Local), viết các biểu thức , . . . .
Return <giá trị> : tùy chọn, có thể có hoặc không. Nếu như bạn
tạo một hàm có trả về một giá trị thì phần này được thêm vào, ngược lại thì
không cần. Ví dụ như bạn định nghĩa hàm Sin(x) để tính sin của x, thì khi thực
hiện các tính toán xong. Bạn dùng lệnh Return <giá trị> để trả về kết quả
vừa tính được cho Sin(x).
Chú ý
Ø Khi khai
báo <các tham biến>, bạn không cần đặt vào từ khóa chỉ phạm vi của biến.
Theo mặc định, chúng luôn là cục bộ (local). Thậm chí nếu bạn có chỉ định Dim,
Local hay Global thì cũng sẽ bị báo lỗi. Tuy nhiên, hai từ khóa Const,
ByRef lại được phép đặt vào phía trước mỗi biến trong danh sách các tham
biến để mở rộng chức năng của hàm (xem phần “Truyền dữ kiện cho
hàm”).
Ø Lệnh
Return có chức năng chính là chấm dứt ngay quá trình xử lý bên trong hàm và trả
về <giá trị> cho hàm (nếu có). Theo mặc định, AutoIt luôn trả về giá trị
cho một hàm. Nếu lệnh Return <giá trị> được dùng thì hàm sẽ trả về <giá
trị>. Hàm trả về 0 (hoặc “ “ nếu dùng ở string) nếu Return không tồn tại hoặc Return được gọi mà không có phần <giá
trị> theo sau.
Ví dụ
Đoạn mã sau
thực hiện việc định nghĩa hàm _RepeatText để lặp lại n lần một chuỗi
$str = "abc"$new_str = _RepeatText($str, 10, "")MsgBox(0,"_RepeatText 1", "Source : " & $str & @CRLF & "New string : " & $new_str) $str = "Love"$new_str = _RepeatText($str, 5, " - ") ; ngăn cách chuỗi bằng " - "MsgBox(0,"_RepeatText 2", "Source : " & $str & @CRLF & "New string : " & $new_str) Func _RepeatText($string, $how_many, $delim) ; $string sẽ chứa chuỗi dữ kiện được truyền từ ngoài vào ; $how_many cho biết sẽ lặp lại bao nhiêu lần ; $delim chỉ định ký tự nào dùng để ngăn cách giữa hai chuỗi được lặp lại Local $Rep_str ="" For $i=1 To $how_many $Rep_str &= $string & $delim Next
Return $Rep_strEndFunc
cảm ơn các bạn đã quan tâm
0 nhận xét