这是我想要做的
# Ruby
class Foo
def bar
@bar ||= []
end
end下面是我要开始的内容:
// Pony pseudocode
class Foo
var _bar: Optional(Array(I32))
fun ref bar(): Array(I32) ref =>
if _bar == None then
_bar = Some([])
end
_bar.unbox()发布于 2018-10-21 15:25:18
Pony没有内置选项类型。相反,您可以使用None替代方法编写一个sum类型的(…. | None)。可以使用模式匹配来恢复备选方案,基于它们的类型:
class Foo
var _bar: (Array[I32] ref | None) = None
fun ref bar(): Array[I32] ref =>
match _bar
| let bar': Array[I32] => bar'
| None =>
let bar'' = Array[I32]
_bar = bar''
bar''
end请注意,Pony在类型参数周围使用[…],而不是圆括号。
https://stackoverflow.com/questions/52827794
复制相似问题