June 6,2008

Boo(17)-結構與列舉

結構(struct)跟類別很類似,最明顯的差別在於 class 被換成 struct 了,類別的一些特性也可以在結構上使用。 其他的差別:無法繼承類別、結構,只能實作 Interface﹔結構是值型別,在複製實體時,是整個克隆(Clone)而不是像類別一樣,只做參考。
struct Dog:
  def constructor( name ):
    _name=name
  [property(Name)]
  _name as string
emptydog=Dog()
print "emptydog.Name=${emptydog.Name}"  // 什麼都沒印出
lucky=Dog("Lucky")
print "lucky.Name=${lucky.Name}"  // 印出 Lucky
列舉(enum),如果你有用過 C/C++/C# 的話,應該不陌生:
// 宣告列舉
enum Day:
    Sunday
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Sunday
// 也可以指定數值
enum Task:
    TODO=100
    FIXME=101
// 列印
print Day.Sunday
// 尋訪列舉型別裡所有元素
for s in Enum.GetNames(Day):
    print s
// 另一種
for n,v in array( zip( Enum.GetNames(Task), Enum.GetValues(Task)) ):
    print "${n}=${v}"


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

引用URL

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