Scala 函數基礎入門


函數的定義與調用

Scala中定義函數時,需要定義函數的函數名、參數、函數體。

我們的第一個函數如下所示:

  

  def sayHello(name: String, age: Int) = {

 

      if (age > 18) { printf("hi %s, you are a big boy\n", name); age }

 

      else { printf("hi %s, you are a little boy\n", name); age

 

  }

 

    sayHello("leo", 30)

 

 

Scala要求必須給出所有參數的類型,但是不一定給出函數返回值的類型,只要右側的 函數體中不包含遞歸的語句,Scala就可以自己根據右側的表達式推斷出返回類型。

 

 

  在代碼塊中定義包含多行語句的函數體

單行的函數:def sayHello(name: String) = print("Hello, " + name)

如果函數體中有多行代碼,則可以使用代碼塊的方式包裹多行代碼,代碼塊中最后一行的返回值就是整個函數的返回值。與Java中不同,不是使用return返回值的。

 

比如如下的函數,實現累加的功能:

def sum(n: Int) = {

  var sum = 0;

  for(i <- 1 to n) sum += i

  sum

}

 

遞歸函數與返回類型

如果在函數體內遞歸調用函數自身,則必須手動給出函數的返回類型。

 

例如,實現經典的斐波那契數列:

9 + 8; 8 + 7 + 7 + 6; 7 + 6 + 6 + 5 + 6 + 5 + 5 + 4; ....

 

def fab(n: Int): Int = {

  if(n <= 1) 1

  else fab(n - 1) + fab(n - 2)

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM