pony筆記
helloworld
創建一個文件helloworld.pony
actor Main
new create(env: Env) =>
env.out.print("Hello, world!")
之後命令編譯程序
ponyc
這個命令會編譯當前目錄下所有的源文件
這其中,actor
用於聲明一個類,而create
用於聲明這個類的構造器
而env對象內含常用的stdin
, stdout
, 和 stderr
例如env.out.print
用於輸出字符串
類
定義一個類使用class
關鍵字
class Wombat
let name: String
var _hunger_level: U64
下劃線_
開頭的是私有屬性,let
聲明常量 var
聲明變量
聲明構造器使用new
關鍵字
class Wombat
let name: String
var _hunger_level: U64
new create(name': String) =>
name = name'
_hunger_level = 0
new hungry(name': String, hunger': U64) =>
name = name'
_hunger_level = hunger'
通過構造器實例化類
let defaultWombat = Wombat("Fantastibat") // Invokes the create method by default
let hungryWombat = Wombat.hungry("Nomsbat", 12) // Invokes the hungry method
可以爲屬性設置默認值(pony沒有null值)
class Hawk
var _hunger_level: U64 = 0
class Owl
var _hunger_level: U64
new create() =>
_hunger_level = 42
所有屬性都有默認值的情況下,可以爲類設置無參構造器,用無參構造器實例化類可以不用寫括號
class Forest
let _owl: Owl = Owl
let _hawk: Hawk = Hawk
方法
聲明方法使用關鍵字fun
pony沒有return
關鍵字,方法的最後一行代碼的值的類型就是方法的類型
class Wombat
let name: String
var _hunger_level: U64
var _thirst_level: U64 = 1
new create(name': String) =>
name = name'
_hunger_level = 0
new hungry(name': String, hunger': U64) =>
name = name'
_hunger_level = hunger'
fun hunger(): U64 => _hunger_level
fun ref set_hunger(to: U64 = 0): U64 => _hunger_level = to
本文作者:七つ一旋桜
本文链接:https://www.cnblogs.com/poifa/p/16982265.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步