Seraph 4.0版本以后的新的腳本示例
更新時間:2009年07月18日 15:55:32 作者:
4.0中,最重要的幾大改如下,需要的朋友看下。
4.0中,最重要的幾大改如下:
- 允許數(shù)組相互直接賦值,并允許數(shù)組成為函數(shù)的參數(shù)。
- 允許在函數(shù)中調用后面聲明的函數(shù),即函數(shù)聲明的先后與調用關系無關。使間接遞歸成為可能。
- 允許在定義了函數(shù)之后的腳本位置定義全局變量。這樣USE子腳本中也可以聲明全局變量了,使其功能可以更靈活。
以下分別對這幾大改進舉例說明
允許數(shù)組相互直接賦值,并允許數(shù)組成為函數(shù)的參數(shù)。
例1,數(shù)組相互直接賦值
function main
dim arr1[10]
arr1[1]=5
#將數(shù)組arr1整體COPY至arr2
arr2=arr1
#輸出arr2[1]的值,應為5
Print(arr2[1])
end function
例2,數(shù)組作為參數(shù)
function fx(arr1, byref arr2)
Print(arr1[1])
#改變byref參數(shù)arr2中的某個元素的值
arr2[1]=10
end function
function main
dim arr1[10],arr2[10]
arr1[1]=5
fx(arr1, arr2)
#輸出arr2[1]值。此值在fx函數(shù)中被改變,應輸出10
Print(arr2[1])
end function
允許在函數(shù)中調用后面聲明的函數(shù),即函數(shù)聲明的先后與調用關系無關。
例
function main
fx()
end function
#函數(shù)fx聲明在main函數(shù)之后,同樣可以被調用
function fx
Print("Hello")
end function
允許在定義了函數(shù)之后的腳本位置定義全局變量。
例
dim a
function fx
#a與b都是全局變量。即使b在后面才定義,也不影響它被前面聲明的函數(shù)所調用
Print(a)
Print(b)
end function
dim b
function main
a=1
b=2
fx()
end function
技巧
利用這些新改進,在腳本中用USE來加載其他子腳本變的更強大。
我們知道,在腳本的任何位置,我們可以用
#USE 腳本名
來加載一個腳本的內容到當前位置。
之前由于dim定義只允許放在所有的函數(shù)定義之前,這使得在子腳本中放一些需要使用自定義的全局變量的函數(shù)變的很困難,特別是要USE多個這樣的子腳本的時候。在4.0版本以后,這樣的問題就解決了。
例:
主腳本內容:
function fx
end function
#use utils.ser
function main
#訪問在子腳本中定義的全局變量
a=1
#訪問在子腳本中定義的函數(shù)
myPrint()
end function
子腳本utils.ser內容:
dim a
function myPrint
Print(a)
- 允許數(shù)組相互直接賦值,并允許數(shù)組成為函數(shù)的參數(shù)。
- 允許在函數(shù)中調用后面聲明的函數(shù),即函數(shù)聲明的先后與調用關系無關。使間接遞歸成為可能。
- 允許在定義了函數(shù)之后的腳本位置定義全局變量。這樣USE子腳本中也可以聲明全局變量了,使其功能可以更靈活。
以下分別對這幾大改進舉例說明
允許數(shù)組相互直接賦值,并允許數(shù)組成為函數(shù)的參數(shù)。
例1,數(shù)組相互直接賦值
function main
dim arr1[10]
arr1[1]=5
#將數(shù)組arr1整體COPY至arr2
arr2=arr1
#輸出arr2[1]的值,應為5
Print(arr2[1])
end function
例2,數(shù)組作為參數(shù)
function fx(arr1, byref arr2)
Print(arr1[1])
#改變byref參數(shù)arr2中的某個元素的值
arr2[1]=10
end function
function main
dim arr1[10],arr2[10]
arr1[1]=5
fx(arr1, arr2)
#輸出arr2[1]值。此值在fx函數(shù)中被改變,應輸出10
Print(arr2[1])
end function
允許在函數(shù)中調用后面聲明的函數(shù),即函數(shù)聲明的先后與調用關系無關。
例
function main
fx()
end function
#函數(shù)fx聲明在main函數(shù)之后,同樣可以被調用
function fx
Print("Hello")
end function
允許在定義了函數(shù)之后的腳本位置定義全局變量。
例
dim a
function fx
#a與b都是全局變量。即使b在后面才定義,也不影響它被前面聲明的函數(shù)所調用
Print(a)
Print(b)
end function
dim b
function main
a=1
b=2
fx()
end function
技巧
利用這些新改進,在腳本中用USE來加載其他子腳本變的更強大。
我們知道,在腳本的任何位置,我們可以用
#USE 腳本名
來加載一個腳本的內容到當前位置。
之前由于dim定義只允許放在所有的函數(shù)定義之前,這使得在子腳本中放一些需要使用自定義的全局變量的函數(shù)變的很困難,特別是要USE多個這樣的子腳本的時候。在4.0版本以后,這樣的問題就解決了。
例:
主腳本內容:
function fx
end function
#use utils.ser
function main
#訪問在子腳本中定義的全局變量
a=1
#訪問在子腳本中定義的函數(shù)
myPrint()
end function
子腳本utils.ser內容:
dim a
function myPrint
Print(a)