【发布时间】:2017-01-18 22:24:17
【问题描述】:
我有一个如下所示的伪代码。 ItemChurner.churn() 是抽象组件,它生成对象直到x 次,其中x 是未知的。 :
def func: MyList = {
var list: MyList = MyList()
while(ItemChurner.canChurn) {
list = new MyList(ItemChurner.churn(), list)
}
list
}
有没有办法避免使用var?
【问题讨论】:
-
你可以实现
Iterator接口,比如val iterator = new Iterator {def hasNext = ItemChurner.canChurn; def next = ItemChurner.churn(),然后iterator.toList -
为什么要用 try-catch 包裹
while循环的内部?如果没有元素,ItemChurner不应该返回false吗? -
@YuvalItzchakov:对。更正了 sn-p。
标签: scala functional-programming immutability