Scala 符號學習

2021-09-27 10:49:16 字數 3193 閱讀 9479

1. 在scala中"_" 的含義

import scala.list._

":_*"作為乙個整體,告訴編譯器你希望將某個引數當作引數序列處理;

def sum(nums:int*):int=

sum(1 to 5:_*)

val vector = vector(1 to 10:_*)

指代集合的每乙個元素;

val list = list(1,2,3,4)

list.filter(_%2==0).map(2*_)

在元祖中,可以使用方法_1,_2,_3訪問組員;

val t = (1,2,3)

t._1

t._2

t._3

使用模式匹配可以用來獲取元組的組員;

val t = (1,2,3)

val(f1,f2,_) = t

val(f,_,_) = t

val arr = array(1,2,3,4,5)

val array(a1,a2,_*) = arr

識別符號;

val s_1 = ""

代表的是某一型別的預設值(int 0,double 0.0,refer null);

object test

2. 在scala中"*"的含義

3. 其他的一些令人髮指的符號

val list = "a"::"b"::nil

val otherlist = "00"::list

符號":::",連線兩個列表集合

val list1 = list(1,2,3)

var list2 = list(4,5,6)

val list3 = list1:::list2

符號":+",列表追加元素,頭部

var list = list(1, 2, 3, 4)

list = list :+ 0

符號"+:",列表追加元素,尾部

var list = list(1, 2, 3, 4)

list = 5 +: list

符號"++",連線兩個序列

val seq1 = seq(1,3,4)

val seq2 = seq(5,7,9)

val seq3 = seq1++seq2

符號"<-",集合遍歷

val seq = seq(1,3,4,6,7)

for(item<- seq) println(item)

符號"->",構造乙個二元元祖

val t1 = 1->"a"

val map = map(t1, 2->"b")

符號"=>",匿名函式

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

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

符號"+=",字串拼接,新增元素

var s1 = "abc"

s1+="123"

var map = map((1, 'a'), (2, 'b'))

map += (3 -> 'c')

符號"++=",字串拼接

var s = "a"

s += "b"

s ++= "c"

符號"-=",刪除元素

var map = map((1, 'a'), (2, 'b'))

map -= (1, 'a')

符號"[t<:upperbound]",泛型上界,t必須是子類

case class animal(name: string)

class print[t<:animal]

符號"[t>:lowerbound]",泛型下界,t必須是父類

case class animal(name: string)

case class dog(override val name:string, nickname: string) extends animal(name: string)

class print[t>:dog]

符號"[t<%viewbound]",泛型視界

class print[t<%string]

符號"[t:contextbound]",泛型上下文界

class print[t:string]

符號"[+t]",泛型協變

class print[+t]

符號"[-t]",泛型逆變

class print[-t]

符號"[t]",泛型不變

class print[t]

4. 方法或者函式呼叫的"."、" 「、」()"、"{}"問題

list(1,2,3).size

"123".length

"123".length()

方法呼叫或者函式呼叫的".「是可以省略的,省略的同時需要加入乙個」 ";

list(1,2,3) size

val v = vector(1 to 10:_*)

v map(_+1) map(_*2)

v.map(_+1).map(_*2)

println("hello world" substring(0, 3) touppercase() indexof "h")

當函式只接收乙個引數時,就可以使用"{}「代替」()"

def add(i:int)(j:int=>int)=j(i)

val a1 = add(1)

println(a1)

def p(x:int) = println(x)

p(11)

p

演算法符號學習記錄 符號 學習記錄

演算法符號學習記錄 符號 學習記錄 1 西塔 緊確界。相當於 同階 2 o 大歐 上界。相當於 3 o 小歐 非緊的上界。相當於 4 大歐公尺伽 下界。相當於 5 小歐公尺伽 非緊的下界。相當於 o f n 描述的是數量級別與f n 同階或者比f n 更低階,比如乙個t n n那麼它既可以寫成t n...

linux符號學習

有時候很想知道某個具體的符號是哪種型別的符號,未初始化的全域性資料?已經初始化的全域性資料?還是 段?使用nm命令可以列出符號 符號型別以及符號的絕對位址之間的對應關係。nm可以列出main 可能是乙個目標檔案 或者是共享庫檔案或者是乙個可執行檔案等 中的符號對應關係。sh nm s main 檢視...

ruby 符號學習筆記

方法後面加個?可能 表示返回乙個boolean型別 方法後面加個!可能 表示會修改原來的物件內容,否則就是不改變原來的物件,只是複製乙份 變數前面加個 可能表示全域性變數 變數前面加個 表示例項變數 變數前面加個 表示類變數 begin here is comments comments again...