網頁標題: AutoIt!! 變數
 



Dec 18 Sat 2010 03:51 
[A] AutoIt!! 變數
分享:   

1. 變數組成

如之前所提, AutoIt 變數都是以 $ 方式代表變數,變數必須以 $ 為開頭,且只能有數字、字數、底線所組成。

2. Local 變數

使用 Local 宣告時,變數將被視為區域變數。如

Local $L_Var1, $Var2

3. Gobal 變數

使用 Gobal 宣告時,變數將被視為 Gobal 變數。如

Gobal $G_Var1, $G_Var2

---------------

為了說明 Gobal 和 Local 的差別,首先要說變數生命週期的概念,我以 AutoIt舉一個例子

Gobal $Gobal_Var = 10;  ; 一開始就宣告此全域變數, 生命週期從程式開始一直到結束
MyFunc1() ; // $Gobal_Var is still equ 10
MyFunc2() ; // $Gobal_Var changed to 1

Func MyFunc1()
  Local $Gobal_Var = 1  ; 宣告為 Local, 生命週期只有在 MyFunc1 裡面
FuncEnd

Func MyFunc2()
  $Gobal_Var = 1  ; 沒宣告過, 直接調用全域變數
FuncEnd

在 MyFunc1() 裡面自己再宣告一個 Local 的 $Gobal_Var 變數,這裡的 $Gobal_Var 和最上面的 $Gobal_Var 不同,進入MyFunc1() 時,程式會再重新為這個 Local 配置一個新的記憶體空間,最後結束 MyFunc1() 時, 這個 $Gobal_Var 會被銷毀,於是從頭到尾和最上面的 Gobal $Gobal_Var 無關。

至於在 MyFunc2() 裡面, $Gobal_Var 沒經過宣告就直接指定,於是它便指定到最上面的 Gobal $Gobal_Var。這部份還蠻難 解釋的,仍需多寫程式去體會。

-----------

4. Dim 變數

對初學者而言,Dim 應是宣告變數較佳的選擇,因 Gobal 和 Local 常常不知道使用時機為何。Dim 宣告之變數,如變數名稱不存在於 Global 全域區域中,則設定為 Local 區域範圍 (此情況下它會再度使用全域變數!),如

Dim $D1, $D2

5. Const 常數

這部份和 C/C++ 的 Const 修飾字很像,和 C/C++ 一樣,使用 Const 第一次一定要給右值,因其後便無法再 assigned 給 Const 變數。 如

Dim Const $PI = 3.14159 ; 將 $PI 宣告為一常數
$PI = 3.14 ; error, 不可再變動

6. Array 陣列 (這裡竟然說明書是翻成 "群組" )

AutoIt 的陣列非常特殊,似乎只有靜態陣列,無法去刪除它 ( 除非當初是用 Local 宣告,最後等它生命週期結束)。但裡面的資料型態竟可混用,但這裡必須提醒各位,陣列裡面的資料型態最好不要混用,不然到時容易出錯,關於 Array 的使用後續會有另一篇文章做介紹。一維陣列使用範例如下

Dim $Array1[5] = ["文字0", "文字1", "文字2", "文字3", "文字4"] ; 文字陣列
Dim $Array2[2] = [0, 1] ; 數字陣列
Dim $Array3[3] = [ "文字", 1.23, true] ; 混用 文字、數字、布林之陣列

像上面的 $Array3 就用得不好。然而 AutoIt 在陣列部份使用限制卻非常多:

A. 宣告時一定要指定陣列大小。
B. 在一個陣列內,最多可使用到 64 組範圍,項目總數不能大於 2^24 (16 777 216)。

edisonx 發表在 痞客邦 PIXNET 迴響(0) 引用(0) 人氣(119)

http://edisonx.pixnet.net/blog/post/38133449
回 · 發現好東西 autoit 這一篇文章封面


本文張貼者:校校鴿〔張貼時間:民國100年10月10日(星期一)8點12分〕 | 寫信給校校鴿

部落格首頁


學習的故鄉首頁
本站公告:〔您越需要我們,我們就越有創意〕 本站說明書:〔發現故鄉還有改進的地方,請來信告訴原丁們〕
觀察應用學習點數 :〔咱的故鄉有您的參與,會使我們有更大的發揮空間,展現更豐富精彩的學習畫面〕 〔期待藉由無障礙網頁設計,能讓視障小朋友更愛看書、更愛寫作且更愛學習〕:盲用電腦「心得分享」
〔為了讓我們有乾淨的學習環境,請勿任意在本站散播商業廣告與不合法文件或聯結〕:本站宣示