【发布时间】:2012-12-15 21:31:03
【问题描述】:
这里是 Scala 菜鸟。
这是我的简单 for 循环
def forExampleStoreValues = {
println(">>forExampleStoreValues");
val retVal = for{i <- 1 to 5 if i % 2 == 0} yield i;
println("retVal=" + retVal);
}
我的期望是当我调用它时,最后一个 val 将自动返回。但是,当我从 main 调用它时,
object MainRunner {
def main(args: Array[String]){
println("Scala stuff!"); // println comes from Predef which definitions for anything inside a Scala compilation unit.
runForExamples();
}
def runForExamples() {
val forLE = new ForLoopExample(); // No need to declare type.
println("forExampleStoreValues=" +forLE.forExampleStoreValues)
}
}
输出是:
>>forExampleStoreValues
retVal=Vector(2, 4)
forExampleStoreValues=()
然后我尝试显式返回 retval。
def forExampleStoreValues = {
println(">>forExampleStoreValues");
val retVal = for{i <- 1 to 5 if i % 2 == 0} yield i;
println("retVal=" + retVal);
return retval;
}
这给出了:
method forExampleStoreValues has return statement; needs result type
所以我将函数签名更改为:
def forExampleStoreValues():Vector
给出:
Vector takes type parameters
在这个阶段,不知道该放什么,我想确保我没有做我不需要做的事情。
【问题讨论】: