scala中常用特殊符號(hào)詳解
=>(匿名函數(shù))
=> 匿名函數(shù),在Spark中函數(shù)也是一個(gè)對(duì)象可以賦值給一個(gè)變量。
Spark的匿名函數(shù)定義格式:
(形參列表) => {函數(shù)體}
所以,=>的作用就是創(chuàng)建一個(gè)匿名函數(shù)實(shí)例。
比如:(x:Int) => x +1 ,就等同于下面的Java方法:
public int function(int x) { return x+1; }
示例:
class Symbol { var add = (x: Int) => x + 1 } object test2 { def main (args: Array[String] ): Unit = { var symbol = new Symbol printf(""+ symbol.add.toString()) } }
<- (集合遍歷)
循環(huán)遍歷,示例如下:
var list = Array(1,2,3,4) for (aa <- list) { printf(aa+" ") }
上面代碼類似于Java的代碼:
int[] list = {1,2,3,4}; for(int aa : list) { System.out.print(aa+" "); }
++=(字符串拼接)
var s:String = "a" s+="b" println(s) s++="c" println(s)
:::三個(gè)冒號(hào)運(yùn)算符與::兩個(gè)冒號(hào)運(yùn)算符
:::三個(gè)冒號(hào)運(yùn)算符表示List的連接操作。(類似于Java中的 list1.addAll(list2))
::兩個(gè)冒號(hào)運(yùn)算符表示普通元素與list的連接操作。(類似于Java中的list1.add(A)操作)
scala操作示例:
val one = List(1,2,3) val two = List(4,5,6) val three = one ::: two println(three.toString()) val four = 7 :: three println(four.toString())
-> 構(gòu)造元組和_N訪問(wèn)元組第N個(gè)元素
1.scala中元組含義:
- 元組是不同類型的值聚集線程的列表
- 通過(guò)將多個(gè)值使用小括號(hào)括起來(lái),即表示元組
2.scala中元組與數(shù)組區(qū)別:數(shù)組中元素 數(shù)據(jù)類型必須一樣,但是元組數(shù)據(jù)類型可以不同。
示例程序:
val first = (1,2,3) // 定義三元元組 val one = 1 val two = 2 val three = one -> two println(three) // 構(gòu)造二元元組 println(three._2) // 訪問(wèn)二元元組中第二個(gè)值
_(下劃線)的用法
通配符
_可以起到類似于*作用的通配符:
import org.apache.spark.SparkContext._
指代集合中的每一個(gè)元素
例如 遍歷集合篩選列表中大于某個(gè)值的元素。
val lst = List(1,2,3,4,5) val lstFilter = lst.filter(_ > 3)
獲取元組中指定下標(biāo)的元素值
val ss = (1,"22","333") println(ss._1)
使用模式匹配可以用來(lái)獲取元組的組員
val m = Map(1 -> 2,2 -> 4) for ((k,_) <- m) println(k) //如果不需要所有部件, 則在不需要的部件使用_; 本例只取key,因此在value處用_
成員變量而非局部變量添加默認(rèn)值
var s:Int=_ def main(args: Array[String]): Unit = { println(s) }
:_* 作為一個(gè)整體,告訴編譯器你希望將某個(gè)參數(shù)當(dāng)做數(shù)序列處理
def main(args: Array[String]): Unit = { val s = sum(1 to 5:_*) //把1 to 5當(dāng)作一個(gè)序列處理 println(s) } def sum(args: Int*) : Int = { var result = 0 ; for(s2 <- args) { result += s2 ; } result ; }
+=
為可變數(shù)組添加元素
val arrBuf1 = new ArrayBuffer[Int]() arrBuf1+= 11 // 添加一個(gè)元素 println(arrBuf1)
-=
從map后者可變數(shù)組中移除相應(yīng)的值
val arrBuf1 = new ArrayBuffer[Int]() arrBuf1+= 11 // 添加一個(gè)元素 arrBuf1+= 12 // 添加一個(gè)元素 arrBuf1-= 12 // 刪除一個(gè)元素 println(arrBuf1) var map = Map(1 -> 1,2 -> 2,3 ->3 ) map-=1 println(map)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- IDEA中scala生成變量后自動(dòng)顯示變量類型問(wèn)題
- Idea中添加Maven項(xiàng)目支持scala的詳細(xì)步驟
- Scala數(shù)據(jù)庫(kù)連接池的簡(jiǎn)單實(shí)現(xiàn)
- Java和Scala集合間的相互轉(zhuǎn)換方式
- C# ExecuteScalar()方法案例講解
- idea中如何創(chuàng)建scala項(xiàng)目
- Scala函數(shù)式編程專題--scala集合和函數(shù)
- Scala函數(shù)式編程專題--scala基礎(chǔ)語(yǔ)法介紹
- Scala入門教程詳解
- Scala基礎(chǔ)語(yǔ)法總結(jié)
相關(guān)文章
Spring Boot Event Bus用法小結(jié)
Spring Boot Event Bus是Spring框架中事件驅(qū)動(dòng)編程的一部分,本文主要介紹了Spring Boot Event Bus用法小結(jié),感興趣的可以了解一下2023-09-09