Seraph 4.0版本以後的新的指令碼樣本

來源:互聯網
上載者:User

4.0中,最重要的幾大改如下:
- 允許數組相互直接賦值,並允許數組成為函數的參數。
- 允許在函數中調用後面聲明的函數,即函式宣告的先後與調用關係無關。使間接遞迴成為可能。
- 允許在定義了函數之後的指令碼位置定義全域變數。這樣USE子指令碼中也可以聲明全域變數了,使其功能可以更靈活。

以下分別對這幾大改進舉例說明
允許數組相互直接賦值,並允許數組成為函數的參數。

例1,數組相互直接賦值
function main
dim arr1[10]
arr1[1]=5
#將數組arr1整體COPY至arr2
arr2=arr1
#輸出arr2[1]的值,應為5
Print(arr2[1])
end function

例2,數組作為參數

function fx(arr1, byref arr2)
Print(arr1[1])
#改變byref參數arr2中的某個元素的值
arr2[1]=10
end function

function main
dim arr1[10],arr2[10]
arr1[1]=5
fx(arr1, arr2)
#輸出arr2[1]值。此值在fx函數中被改變,應輸出10
Print(arr2[1])
end function

允許在函數中調用後面聲明的函數,即函式宣告的先後與調用關係無關。

function main
fx()
end function

#函數fx聲明在main函數之後,同樣可以被調用
function fx
Print("Hello")
end function

允許在定義了函數之後的指令碼位置定義全域變數。

dim a
function fx
#a與b都是全域變數。即使b在後面才定義,也不影響它被前面聲明的函數所調用
Print(a)
Print(b)
end function

dim b

function main
a=1
b=2
fx()
end function

技巧
利用這些新改進,在指令碼中用USE來載入其他子指令碼變的更強大。
我們知道,在指令碼的任何位置,我們可以用
#USE 指令碼名
來載入一個指令碼的內容到當前位置。
之前由於dim定義只允許放在所有的函數定義之前,這使得在子指令碼中放一些需要使用自訂的全域變數的函數變的很困難,特別是要USE多個這樣的子指令碼的時候。在4.0版本以後,這樣的問題就解決了。

例:
主指令碼內容:

function fx
end function

#use utils.ser

function main
#訪問在子指令碼中定義的全域變數
a=1
#訪問在子指令碼中定義的函數
myPrint()
end function

子指令碼utils.ser內容:
dim a
function myPrint
Print(a)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.