溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

scala中有哪些常用的特殊符號

發(fā)布時(shí)間:2021-06-17 12:01:01 來源:億速云 閱讀:220 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)scala中有哪些常用的特殊符號,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

=>(匿名函數(shù)) 

=> 匿名函數(shù),在Spark中函數(shù)也是一個(gè)對象可以賦值給一個(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è)冒號運(yùn)算符與::兩個(gè)冒號運(yùn)算符

:::三個(gè)冒號運(yùn)算符表示List的連接操作。(類似于Java中的 list1.addAll(list2))
 ::兩個(gè)冒號運(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訪問元組第N個(gè)元素

1.scala中元組含義:

  • 元組是不同類型的值聚集線程的列表

  • 通過將多個(gè)值使用小括號括起來,即表示元組

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) // 訪問二元元組中第二個(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)

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

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)

以上就是scala中有哪些常用的特殊符號,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI