Boo(8)-迴圈

基本上迴圈有兩種:for 與 while。
for 與一般語言的 for 不太一樣,反而與 foreach 比較類似,為了要能得到一個 Enumerator,通常都搭配 range():

// 印出 0 到 4
for i in range(5):
print i

while 也沒什麼特別的:

// 同樣印出 0 到 4
i=0
while i<4:
print i
i=i+1

Boo Primer還有提出所謂的 do-while,但實際上是運用 while + break + unless修飾詞來達成的:

// 也是印出 0 到 4
i=0
while true:
print i
i=i+1
break unless i<4

有 break,當然也有 continue:

// 印出 1 3 5 7 9
for i in range(10):
continue if i%2==0
print i

另外再提一個關鍵字,就是 pass,這用來表示程式區塊內不做事情:

// 不會輸出任何結果,因為被 pass 掉了...
i=2
if i%2==0:
pass
else:
print "i!=2"

Boo and Split

剛好遇到這種狀況,要依據字串的某字元然後做出陣列。所以很直覺地,就可以寫出這樣的代碼。

splitter = ( char(','), char('\n') )
fields = inputText.Split( splitter )

不過這段代碼足以讓人搞半天了,boo 會不讓你執行。
非常感謝Google 網上論壇 的Boo Programming Language群組

正好解答了我的問題,原來要這樣寫:

splitter = ( char(','), char('\n') )
fields = inputText.Split( *splitter )

這真是太隱晦不明了…