結構(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}"