批里批里 (゜-゜)つ🍺 干杯|

七つ一旋桜

园龄:4年2个月粉丝:6关注:3

📂笔记
🔖pony
2022-12-14 15:16阅读: 26评论: 0推荐: 0

pony筆記

helloworld

創建一個文件helloworld.pony

actor Main
  new create(env: Env) =>
    env.out.print("Hello, world!")

之後命令編譯程序

ponyc

這個命令會編譯當前目錄下所有的源文件
這其中,actor用於聲明一個類,而create用於聲明這個類的構造器
而env對象內含常用的stdinstdout, 和 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 中国大陆许可协议进行许可。

posted @   七つ一旋桜  阅读(26)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起