May 6,2008

Boo(9)-List

Boo的 List 並不是使用 .Net/Mono 的 List,而是自己實作。
使用的方法很簡單,用中括號或是使用List函數。
l1=[ 1, 2, 3, 4, "a", "b", "c" ]
l2=List( range(10) )
l1.Add( "d" )
l2.Add( "d" )
print l1
print l2
l1.Remove( "d" )
// 輸出結果
// [1, 2, 3, 4, "a", "b", "c", "d"]
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "d"]
// [1, 2, 3, 4, "a", "b", "c"]
除了正常 List 的操作 Add()、Remove() 以外,還提供了 Push()、Pop(),這意味著可以把 List 當 Stack 來使用。

如果你想知道更多 List 的操作,可以在 booish 裡面使用 dir(),來查看。
>>>l=[]
>>>dir(l)

由於 dir() 會傳回一個 IEnumerator,所以你也可以用下面的程式把每個項目輸出。
l=[]
for m in dir(l):
	print m

或者,直接參考 Boo 的原始碼 src/boo.lang/list.cs 。

隨著 .Net framework 2.0 推出,Boo 也支援了 Generic 語法,語法可以參考這篇的說明:Boo Generic Syntax
import System.Collections.Generic

l = List[of int]()
l.Add( 10 )
l.Add( 20 )
for i in l:
  print i
l.Add( "hello" )  // 這行將會發生錯誤,告訴你不可以加入字串型別

首要的一件事,就是先 import System.Collections.Generic,表明要使用 Generic,否則之後的程式會無法執行。接著使用 [of Type] 的語法,表示 List 要使用指定 Type 的泛型。

使用泛型最明顯的好處是省去轉型的麻煩,因為 List 裡面預設都是使用 object 型別,改用 Generic 以後,可以預先指定好 List 裡面的元素要使用什麼型別。


Posted by elleryq at 樂多Roodo! │16:51 │回應(0)引用(0)Boo
樂多分類:網路/3C 共同主題:.Net/Mono 工具:加入樂多書籤編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/5983853