在 Scala 中返回一個值
Mohammad Irfan
2023年1月30日
本教程將討論如何從 Scala 中的函式返回值。
在 Scala 中返回一個整數值
在 Scala 中,函式可能會也可能不會向呼叫者函式返回任何值。這取決於函式的實現。
返回值的函式可以在其簽名中指定,以便呼叫者知道將返回什麼型別的值。在這個例子中,我們建立了一個接受兩個整數引數並返回一個整數的函式。
程式碼:
object MyClass {
def main(args: Array[String]) {
var result = getSum(10,20);
print(result);
}
def getSum( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
輸出:
30
在 Scala 中返回一個匿名值
我們宣告瞭一個 getSum()
,它接受兩個整數引數但不指定返回型別。現在,由 Scala 直譯器通過函式的最後一個表示式來推斷返回值的型別。
下面示例中實現的函式返回一個整數值。
程式碼:
object MyClass {
def main(args: Array[String]) {
var result = getSum(10,20);
print(result);
}
def getSum( a:Int, b:Int ) = {
var sum:Int = 0
sum = a + b
sum
}
}
輸出:
30
同樣,我們也可以返回字串值。該函式根據最後一個表示式/語句型別採用兩個字串引數。
程式碼:
object MyClass {
def main(args: Array[String]) {
var result = getSum("Hello","Hi");
print(result);
}
def getSum( a:String, b:String ) = {
var sentence:String = ""
sentence = a + b
sentence
}
}
輸出:
HelloHi
在 Scala 中返回列表或向量值
我們還可以返回一個完整的容器,例如陣列、列表或向量。該函式在下面的程式碼中迴圈和產生後返回一個向量。
程式碼:
object MyClass {
def main(args: Array[String]) {
var result = getList(1,5);
print(result);
}
def getList(a:Int, b:Int ) = {
var list = for( c <- a to b) yield c
list
}
}
輸出:
Vector(1, 2, 3, 4, 5)
在 Scala 中,如果沒有返回值,則假定最終表示式為返回值。如果最後一個表示式是你想要返回的,你可以跳過 return
關鍵字。