Scala 簡單的函式基礎定義

2021-10-04 18:56:49 字數 3157 閱讀 3444

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不同...