一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - scala中常用特殊符號詳解

scala中常用特殊符號詳解

2019-07-08 12:51咸魚 Java教程

這篇文章主要介紹了scala中常用特殊符號詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

=>(匿名函數) 

=> 匿名函數,在Spark中函數也是一個對象可以賦值給一個變量。

Spark的匿名函數定義格式:

(形參列表) => {函數體}

所以,=>的作用就是創建一個匿名函數實例。

比如:(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())
 }
}

<- (集合遍歷)

循環遍歷,示例如下:

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)

:::三個冒號運算符與::兩個冒號運算符

:::三個冒號運算符表示List的連接操作。(類似于Java中的 list1.addAll(list2))
 ::兩個冒號運算符表示普通元素與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())

-> 構造元組和_N訪問元組第N個元素

1.scala中元組含義:

  • 元組是不同類型的值聚集線程的列表
  • 通過將多個值使用小括號括起來,即表示元組

2.scala中元組與數組區別:數組中元素 數據類型必須一樣,但是元組數據類型可以不同。

示例程序:

val first = (1,2,3) // 定義三元元組

val one = 1
val two = 2
val three = one -> two

println(three) // 構造二元元組

println(three._2) // 訪問二元元組中第二個值

_(下劃線)的用法

通配符

_可以起到類似于*作用的通配符:

import org.apache.spark.SparkContext._

指代集合中的每一個元素

例如 遍歷集合篩選列表中大于某個值的元素。

val lst = List(1,2,3,4,5)
val lstFilter = lst.filter(_ > 3)

獲取元組中指定下標的元素值

val ss = (1,"22","333")
println(ss._1)

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

val m = Map(1 -> 2,2 -> 4)
for ((k,_) <- m) println(k) //如果不需要所有部件, 則在不需要的部件使用_; 本例只取key,因此在value處用_

成員變量而非局部變量添加默認值

var s:Int=_
def main(args: Array[String]): Unit = {
 println(s)
}

:_* 作為一個整體,告訴編譯器你希望將某個參數當做數序列處理

def main(args: Array[String]): Unit = {
 val s = sum(1 to 5:_*)  //把1 to 5當作一個序列處理
 println(s)
}

def sum(args: Int*) : Int = {
 var result = 0 ;
 for(s2 <- args) {
  result += s2 ;
 }
 result ;
}

+=

為可變數組添加元素

val arrBuf1 = new ArrayBuffer[Int]()
arrBuf1+= 11 // 添加一個元素

println(arrBuf1)

-=

從map后者可變數組中移除相應的值

val arrBuf1 = new ArrayBuffer[Int]()
arrBuf1+= 11 // 添加一個元素
arrBuf1+= 12 // 添加一個元素
arrBuf1-= 12 // 刪除一個元素

println(arrBuf1)

var map = Map(1 -> 1,2 -> 2,3 ->3 )
map-=1
println(map)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女露尿口 | 韩剧消失的眼角膜免费完整版 | 亚洲国产成人精品 | 国产精品视频免费看 | 描写细腻的高h肉 | 国产成人精品免费午夜 | 亚洲国产精品久久久久 | 俄罗斯女人与公拘i交酡 | 国产第一页无线好源 | 五月天国产视频 | 欧美日韩国产中文字幕 | 国产日本免费 | 非洲特级特黄aa大片 | 91国内精品久久久久怡红院 | 国产精品亚洲片在线va | 天天久久影视色香综合网 | 日本成年片高清在线观看 | 日本人妖网站 | 男女做污事 | 99久久伊人精品波多野结衣 | 成人啪啪漫画全文阅读 | 福利视频一区二区思瑞 | 国产精品香蕉一区二区三区 | 亚洲剧情在线观看 | 国产精品美女久久久久 | 赤坂丽女医bd无删减在线观看 | 黑人与欧洲女子性大战 | pregnantsexxx临盆孕妇 | 污污动图| 国产玖玖在线 | 国产欧美日韩成人 | 欧美日韩国产在线人成 | 欧美成人aaaa免费高清 | 国产自拍视频一区 | 欧美一级视频在线观看 | 亚洲国产成人精品无码区99 | 亚洲精品一区二区久久这里 | 日本动漫黄网站在线观看 | 小黄鸭YELLOWDUCK7596| 日韩成a人片在线观看日本 日韩不卡一区二区 | 51国产午夜精品免费视频 |