一、Eval函數:定義爲計算一個表達式的值並返回結果。
注意,這裏的定義雖然區區幾個字,但是要仔細理解其幾點含義:
1、首先這個函數是有返回值
2、返回值是通過計算Eval傳遞的參數
3、這個參數必須是一個表達式。
例如:
a = 1
val1 = "a=1"
MsgBox Eval(val1)
分析:
1、首先Eval有返回值,所以要有一個傳遞值,這裏用msgbox函數顯示其結果。
2、val1這個參數的值是一個表達式(a=1),因爲我們在第一行定義了a=1,所以這裏返回判斷應該爲true。
擴展代碼:
val1 = """>>>""&now"
MsgBox Eval(val1)
這裏會返回這個時間值,如:>>>2012-07-04 : 17:25:25。 Eval在這個案例裏,是計算了now這個函數表達式。
二、Execute函數:
執行一個或多個指定的語句。
這個函數很好理解,就是執行變量裏的表達式。
例如:
val1 = "msgbox now"
Execute val1
這裏就是執行一行msgbox now
例如:
val1 = "call funtest() : function funtest() : a=9 : msgbox a : end function"
Execute val1
這裏就是執行多行代碼call funtest() : function funtest() : a=9 : msgbox a : end function,返回a的值9
總結Eval 和 Execute的區別:
1、相同點是他們都會執行參數裏的表達式。
2、不同點在於Eval是返回一個值,而Execute是用來執行一串代碼。