def main
(args: array[string]
): unit =
// (2)函式呼叫
// 函式名(引數)f(
"hello world"
)}
定義位置不一樣函式,定義在方法或者函式內部
方法,定義在類的下面方法支援過載或者重寫,但是函式不支援
object testfunction
def main
(args: array[string]
): unit =
test()
def test
(name:string)
:unit=
//(3)scala中函式可以巢狀定義
def test2()
: unit =}}
}
def main
(args: array[string]
): unit =
test1()
// 函式2:無參,有返回值
def test2()
:string=
println
(test2()
)// 函式3:有參,無返回值
def test3
(s:string)
:unit=
test3
("jinlian"
)// 函式4:有參,有返回值
def test4
(s:string)
:string=
println
(test4
("hello "))
// 函式5:多參,無返回值
def test5
(name:string, age:int)
:unit=
test5
("dalang",40
)}
def main
(args: array[string]
): unit =
// 有輸入引數:輸出 array
test
("hello"
,"scala"
)// 無輸入引數:輸出list()
test()
// (2)如果引數列表中存在多個引數,那麼可變引數一般放置在最後
def test2
( name : string, s: string*
): unit =
test2
("jinlian"
,"dalang"
)// (3)引數預設值
def test3
( name : string, age : int =30)
: unit =
// 如果引數傳遞了值,那麼會覆蓋預設值
test3
("jinlian",20
)// 如果引數有預設值,在呼叫的時候,可以省略這個引數
test3
("dalang"
)// 一般情況下,將有預設值的引數放置在引數列表的後面
def test4
( *** : string =
"男", name : string )
: unit =
// scala函式中引數傳遞是,從左到右
//test4("wusong")
//(4)帶名引數
test4
(name=
"ximenqing"
)}
def main
(args: array[string]
): unit =
println(f
("hello"))
// 至簡原則:能省則省
//(1) return可以省略,scala會使用函式體的最後一行**作為返回值
def f1
( s : string )
: string =
println(f1
("hello"))
//(2)如果函式體只有一行**,可以省略花括號
def f2
(s:string)
:string = s +
" jinlian"
//(3)返回值型別如果能夠推斷出來,那麼可以省略(:和返回值型別一起省略)
def f3
( s : string )
= s +
" jinlian"
println(f3
("hello3"))
//(4)如果有return,則不能省略返回值型別,必須指定。
def f4()
:string =
println(f4
())//(5)如果函式明確宣告unit,那麼即使函式體中使用return關鍵字也不起作用
def f5()
: unit =
println(f5
())//(6)scala如果期望是無返回值型別,可以省略等號
// 將無返回值的函式稱之為過程
def f6()
println(f6
())//(7)如果函式無參,但是宣告了引數列表,那麼呼叫時,小括號,可加可不加
def f7()
="dalang7"
println(f7
())println
(f7)
//(8)如果函式沒有引數列表,那麼小括號可以省略,呼叫時小括號必須省略
def f8 =
"dalang"
//println(f8())
println
(f8)
//(9)如果不關心名稱,只關心邏輯處理,那麼函式名(def)可以省略
def f9 =
(x:string)
=>
def f10
(f:string=
>unit)
=f10
(f9)
println
(f10
((x:string)
=>))
}
Scala基礎語法 函式的定義以及元祖
方法 def 函式名 引數列表 返回型別 def main args array string unit println square 2 square是函式名 x int定義了引數的型別 int 是輸出結果型別即返回值型別 輸出結果為4 上述的方式我們還可以進行簡化 def main args a...
Scala基礎 函式
函式定義 def 函式名 引數名1 引數型別1,引數名2 引數型別2 返回型別 顯式定義了返回型別,才可以return def play1 1 標準形式,返回任一型別 def play2 a1 int,a2 int unit println play2 10,20 返回值為int型別 def pla...
scala基礎語法 類定義
package org.xj.scala.spark 宣告類 乙個原始檔中可以包含很多類,並且scala都是public級別的 class basic2 定義乙個類 scala中的var val def val和def都會被編譯為乙個方法,區別是 val會被編譯器保證執行時其值不能改變,但def不同...