scala基礎3 函式

2021-08-07 06:53:47 字數 1324 閱讀 8442

//常規函式:

def f(x:int):int =

// 無返回值,使用unit

def f():unit =

//unit和其他型別都可以省略,scala可以執行判斷函式的返回型別

def f()=

f()def f()=

print(f())

// 無返回值,=可以省略,unit不能寫

def f()

//無參函式

def f() = println("hello")

f  //呼叫無參函式,()可以省略

f()// 匿名函式

var add = (x:int,y:int) => x+y

//val add = (x:int,y:int) => x+y  //正確

//var add = (x:int,y:int):int => x+y  //錯誤,匿名函式中不可以指定返回型別

println(add(1,2))

//注意x為常量,不可以為變數

var add = (x:int,y:int) =>

函式可以作為值,賦給變數或常量

def add1(x:int) = x+1

val inc = add1 _  //最後需要'_'

println(inc(5))    

** 預設引數

def add(x:int=1,y:int=2) = x+y

println(add(5))

println(add(y=5))

println(add(5,3))

** 變長引數,*表示引數為重複引數

def printstrings(s:string*) =

printstrings("aaa","bbb")

printstrings("aaa","bbb","ccc")

val arr=array("***","yyy")

printstrings(arr:_*)  //後面需要加上'_*',告訴編譯器,是以陣列中的每個元素作為引數,而不是整個陣列

*****====/字串插值/*************************===

val name = "tom"

println(s"hello $name aaa")

println(s"hello $ aaa") //同上

println(s"1 + 1 = $")  //能計算

class person(val name: string)

val person = new person("jack")

println(s"hello $, $")

Scala基礎(3) 函式高階

函式可以沒有名稱,可以直接賦值。如果函式有多行表示式組成,就加上大括號。這一點對匿名函式同樣適用。scala val addone x int x 1 addone int int scala addone 1 res4 int 2注意到scala中一切都是物件。所以addone是乙個物件。同時它又...

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入門系列(二) Scala函式基礎介紹

2 匿名函式 3 高階函式 4 函式巢狀 5 柯里化 6 隱式引數 7 命名引數 8 引數預設值 函式是scala的核心 def 函式名 引數列表 返回值 列1 def square x int int 列2 def sayhello x string unit 函式呼叫 square 10 say...