斯卡拉菜鸟在这里。
这是我的简单 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
在这个阶段,不知道该放什么,我想确保我没有做我不需要做的事情。