Function...Fend

最小單位的可執行程式,1個函式是以Function陳述式開始並以Fend陳述式結束。

格式
Function 函式名稱 [(引數清單)] [As型(函數)] 陳述式 Fend

參數

函數名稱
以64個字元以內的字母,對以Function開始並以Fend命令結束的陳述式群組指定名稱。也可使用下劃線。
引數清單
是呼叫並傳遞給函數的引數變數清單。若有數個變數,則用逗號進行分隔。可省略。
如下所述為引數格式。

[ {ByRef | ByVal}​ ] 變數名稱[( )] As型(引數)

ByRef
參照要呼叫的函數變數時,指定ByRef。此時,可將函式內的引數變更反映於叫用側的變數中。可省略。
ByVal
是預設值。不變更以叫用函式參照的變數值時,則指定ByVal。可省略。
變數名稱[()]
為引數的變數名稱,是必須的參數。請依循變數命名規則。若要將陣列變數用作引數,請務必指定ByRef,並在變數之後附加表示陣列的「()」括弧。
As型(引數)
是必須的參數。請宣告引數型態。
As型(函數)
是欲讀取傳回值時附加的參數。請宣告傳回值的型態。

傳回值
是在函式宣告的最後以As指定的資料型態(As型(函數))。

說明
Function陳述式用於表示SPEL+陳述式群組的開始。用Fend陳述式表示1個函式的結束。Function和Fend陳述式之間的所有陳述式,均視為該函式的一部分。

Function和Fend陳述式如同一個容器,包括在兩者之間的所有陳述式,其本身為1個函式。還可將多個函式用於1個程式檔案。

若要使用傳回值,請將值指派與函式名稱同名的變數,然後結束函數。

參照
Call、Fend、Halt、Quit、Return、Xqt

Function...Fend範例
[例1] 以下是1個檔案中包括3個函式的範例。從main叫用task2和task3,並與main同時執行。

Function main
  Xqt 2, task2 '同時執行工作2
  Xqt 3, task3 '同時執行工作3
  .
  .
  .
Fend

Function task2
  Do
    On 1
    On 2
    Off 1
    Off 2
  Loop
Fend

Function task3
  Do
    On 10
    Wait 1
    Off 10
  Loop
Fend

[例2] 以下是將週邊裝置的壓力控制序列作為引數賦予並將其傳送到外接裝置時的結果作為傳回值,顯示於畫面時的函式範例。

Function main
  Integer iResult
  Real Sequence1(200)
  .
  .
  iResult = PressureControl(ByRef Sequence1())   '引數為陣列
  .
  Print "Result:", iResult
  .
Fend

Function PressureControl(ByRef Array1() As Real) As Integer
  .
  (基於Array1陣列,對週邊裝置進行壓力控制)
  .
  PressureControl = 3    '傳回值
  .
  .
Fend