如何分配可能引发错误的方法的返回值



在pony中,如果类上有一个方法会引发错误,我们将使用?运算符来调用try...end块中的方法。例如:

let my_third_list = List[String].from(["First"; "Second"; "Third"])
try env.out.print(list.apply(1)?) end // Second

但是,如果我想将apply方法的返回值分配给像item这样的名称,然后打印项目,该怎么办

let my_third_list = List[String].from(["First"; "Second"; "Third"])
try let item = list.apply(1)? end // Second
env.out.print(item)

编译器说can't find declaration of 'item'

我该怎么做?在这种情况下,最好的做法是什么?

All"语句";是Pony中的表达式,因此可以将赋值放在try块之外,例如

let item = try list.apply(1)? else "<notfound>" end
env.out.print(item)

else将是必需的,因为必须有可用的右值。

相关内容

最新更新