Scala學習之特殊符號,及函式

2021-08-30 15:15:17 字數 1510 閱讀 2581

scala函式的定義,注意一些特殊函式的書寫

1. =>符號

var equalright = (x:int) => x + 1  //--equalright is 匿名函式

類似於轉化符號,=>指明這個函式把左邊的東西(任何整數x)轉變成右邊的東西(x + 1)。所以,這是乙個把任何整數x對映為x + 1的函式。也可以進行型別的強轉.

---該解釋尚不清晰,需要進一步發現。

2.<- 迴圈遍歷(遞迴)+引數的可變性×

def printstrings(args: string*) =

}函式呼叫:

printstrings("ahobs", "abo", "albo")

結果:arg value[0] = ahobs

arg value[1] = abo

arg value[2] = albo

3.字串拼接 ++=

/***  string 物件是不可變的,如果你需要建立乙個可以修改的字串,可以使用 string builder 類

*/def stringtest(): unit =

函式:1.高階函式 

結果:[10]

2.匿名函式 

3.函式柯里化(currying)  

柯里化(currying)指的是將原來接受兩個引數的函式變成新的接受乙個引數的函式的過程。新的函式返回乙個以原有第二個引數為引數的函式。.

例項首先我們定義乙個函式:

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

那麼我們應用的時候,應該是這樣用:add(1,2)

現在我們把這個函式變一下形:

def add(x:int)(y:int) = x + y

那麼我們應用的時候,應該是這樣用:add(1)(2),最後結果都一樣是3,這種方式(過程)就叫柯里化。

實現過程

add(1)(2) 實際上是依次呼叫兩個普通函式(非柯里化函式),第一次呼叫使用乙個引數 x,返回乙個函式型別的值,第二次使用引數y呼叫這個函式型別的值。

實質上最先演變成這樣乙個方法:

def add(x:int)=(y:int)=>x+y

那麼這個函式是什麼意思呢? 接收乙個x為引數,返回乙個匿名函式,該匿名函式的定義是:接收乙個int型引數y,函式體為x+y。現在我們來對這個方法進行呼叫。

val result = add(1) 

返回乙個result,那result的值應該是乙個匿名函式:(y:int)=>1+y

所以為了得到結果,我們繼續呼叫result。

val sum = result(2)

最後列印出來的結果就是3。

完整例項

下面是乙個完整例項:

object test

def strcat(s1: string)(s2: string) =

}執行以上**,輸出結果為:

$ scalac test.scala

$ scala test

str1 + str2 = hello, scala!

bash之特殊符號的使用

1.3 特殊符號的使用 雙引號用於括起一段字串值,支援 var形式的變數替換 a ls echo a 輸出結果是 ls 單引號也表示其內容是字串值,不支援轉義 a ls echo a 輸出結果是 ls 反引號的作用就是將反引號裡面的內容當做命令執行。必須是shell真的存在的命令 a ls echo...

CSS hack大全之特殊符號的應用

由於各大瀏覽器尤其ie瀏覽器對web標準支援情況不一,導致標準的網頁在各個瀏覽器中的表現不一,因此,解決各瀏覽器相容性問題成為了前端工程師最重要的工作之一,而所謂的hack技術則是前端開發中必用的。css hack的寫法有很多種,其中,特殊符號的應用最為普遍,也最為簡潔,下面一一介紹了特殊符號型別的...

Shell 中引用符號,特殊符號的名稱及意義

shell 中引用符號的名稱及意義 符號 名稱 意義 雙引號引用處美元符號 反引號 和反斜線 之外的所有符號 單引號 引用所有符號 反引號 shell將反引號中的內容解釋為系統命令 反斜線轉義符,遮蔽下乙個字元的特殊意義 shell中的特殊字元及其意義 特殊符號 意義 傳遞到指令碼的引數數量 0個或...