欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

scala中常用特殊符號(hào)詳解

 更新時(shí)間:2019年06月17日 10:37:00   作者:咸魚  
這篇文章主要介紹了scala中常用特殊符號(hào)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

=>(匿名函數(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解Java核心類庫(kù)--Arrays類

    深入了解Java核心類庫(kù)--Arrays類

    這篇文章主要為大家詳細(xì)介紹了java Arrays類定義與使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來(lái)幫助
    2021-07-07
  • SpringBoot中RestTemplate的使用詳解

    SpringBoot中RestTemplate的使用詳解

    這篇文章主要介紹了SpringBoot中RestTemplate的使用詳解,RestTemplate是由Spring框架提供的一個(gè)可用于應(yīng)用中調(diào)用rest服務(wù)的類它簡(jiǎn)化了與http服務(wù)的通信方式,統(tǒng)一了RESTFul的標(biāo)準(zhǔn),封裝了http連接,我們只需要傳入url及其返回值類型即可,需要的朋友可以參考下
    2023-10-10
  • Nacos配置中心設(shè)計(jì)原理分析

    Nacos配置中心設(shè)計(jì)原理分析

    今天分享一下Nacos配置變更的相關(guān)知識(shí)點(diǎn),現(xiàn)在使用Java生態(tài)如果使用微服務(wù),如果部署在K8s上,那么可能會(huì)使用ConfigMap來(lái)存儲(chǔ)配置文件,如果沒(méi)有使用K8s,那么基本上都使用Nacos來(lái)做配置中心,所以有必要了解一下Nacos的配置的知識(shí)點(diǎn),本文只是對(duì)其中的部分實(shí)現(xiàn)原理進(jìn)行分析
    2023-10-10
  • 淺談hibernate中多表映射關(guān)系配置

    淺談hibernate中多表映射關(guān)系配置

    下面小編就為大家?guī)?lái)一篇淺談hibernate中多表映射關(guān)系配置。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Spring Boot Event Bus用法小結(jié)

    Spring Boot Event Bus用法小結(jié)

    Spring Boot Event Bus是Spring框架中事件驅(qū)動(dòng)編程的一部分,本文主要介紹了Spring Boot Event Bus用法小結(jié),感興趣的可以了解一下
    2023-09-09
  • Java Bean的作用域,生命周期和注解

    Java Bean的作用域,生命周期和注解

    這篇文章主要介紹了淺談Spring中Bean的作用域,生命周期和注解,具有一定借鑒價(jià)值,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 在Java中操作Zookeeper的示例代碼詳解

    在Java中操作Zookeeper的示例代碼詳解

    這篇文章主要介紹了在Java中操作Zookeeper的示例代碼詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java?Mybatis框架由淺入深全解析上篇

    Java?Mybatis框架由淺入深全解析上篇

    MyBatis是一個(gè)優(yōu)秀的持久層框架,它對(duì)jdbc的操作數(shù)據(jù)庫(kù)的過(guò)程進(jìn)行封裝,使開(kāi)發(fā)者只需要關(guān)注SQL本身,而不需要花費(fèi)精力去處理例如注冊(cè)驅(qū)動(dòng)、創(chuàng)建connection、創(chuàng)建statement、手動(dòng)設(shè)置參數(shù)、結(jié)果集檢索等jdbc繁雜的過(guò)程代碼本文將為大家初步的介紹一下MyBatis的使用
    2022-07-07
  • Mybatis常用標(biāo)簽整理

    Mybatis常用標(biāo)簽整理

    日常開(kāi)發(fā)中,MyBatis中標(biāo)簽有著舉足輕重的重要性,以下是一些MyBatis框架中常見(jiàn)的標(biāo)簽及案例,感興趣的朋友跟隨小編一起看看吧
    2007-02-02
  • java實(shí)現(xiàn)小球碰撞功能

    java實(shí)現(xiàn)小球碰撞功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)小球碰撞功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論