定義靜態(tài)變量或靜態(tài)數(shù)組.
Static [作用域] 變量 [ = 初值 ]
Static [作用域] 數(shù)組[索引 1]...[索引 n] [
= 初值 ]
作用域 | 可選修飾符, 指定變量的作用范圍: Local 或 Global. |
變量 | 靜態(tài)變量的名稱(chēng). |
初值 | 分配給變量的初始值. 可以是函數(shù)調(diào)用的數(shù)學(xué)或字符串運(yùn)算. 此值僅在變量第一次聲明時(shí)計(jì)算. |
索引 | 數(shù)組維數(shù)的元素?cái)?shù)量, 索引為 0 到 n-1. |
Static $a, $b, $c
Static $a = 2, $b = 10, $c = 20
; 靜態(tài)變量示例.
Func Test1()
Static $STbFirstPass
= 1
If
$STbFirstPass Then
$STbFirstPass = 0
; 執(zhí)行首次任務(wù)
EndIf
;
函數(shù)應(yīng)該做的其它事情
EndFunc ;==>Test1
Func Accumulate($State)
Static $Values[9]
Local
$I
If
IsNumber($State) Then
Switch $State
Case -1
; 復(fù)位
For $I = 0
To 8
$Values[$I] =
0
Next
Return True
Case -2
Return $Values
Case 0 To UBound($Values) - 1
$Values[$State] += 1
Return $Values[$State]
Case Else
If $State < 0 Then
SetError(1, 0)
Return
False
Else
Static
$Values[$State + 1]
; 調(diào)整數(shù)組大小,以適應(yīng)新值
$Values[$State] = 1
Return
1
EndIf
EndSwitch
Else
SetError(2, 0)
EndIf
EndFunc ;==>Accumulate
Global $I
Test1()
For $I = 1 To
99
Accumulate(Random(0,
20, 1))
Next
For $I In Accumulate(-2)
ConsoleWrite($I & ",
")
Next
ConsoleWrite("\n");
Test1()
provider with jb51.net (unicode) |