scala中常用特殊符号详解

 更新时间:2019年06月17日 10:37:00   作者:咸鱼  
这篇文章主要介绍了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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java基于深度优先遍历的随机迷宫生成算法

    Java基于深度优先遍历的随机迷宫生成算法

    今天小编就为大家分享一篇关于Java基于深度优先遍历的随机迷宫生成算法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • LeetCode程序员面试题之无重复字符的最长子串

    LeetCode程序员面试题之无重复字符的最长子串

    Java计算无重复字符的最长子串是一种常见的字符串处理算法,它的目的是找出一个字符串中无重复字符的最长子串。该算法可以很好地解决一些字符串处理问题,比如寻找字符串中重复字符的位置,以及计算字符串中无重复字符的最长子串的长度。
    2023-02-02
  • Java中Shiro安全框架的权限管理

    Java中Shiro安全框架的权限管理

    这篇文章主要介绍了Java中Shiro安全框架的权限管理,Apache Shiro是Java的一个安全框架,Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境,需要的朋友可以参考下
    2023-08-08
  • Java命令行运行错误之找不到或无法加载主类问题的解决方法

    Java命令行运行错误之找不到或无法加载主类问题的解决方法

    这篇文章主要给大家介绍了关于Java命令行运行错误之找不到或无法加载主类问题的解决方法,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • 常用的java日期比较和日期计算方法小结

    常用的java日期比较和日期计算方法小结

    这篇文章主要为大家详细总结了常用的java日期比较和日期计算方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • java实现扫雷游戏

    java实现扫雷游戏

    这篇文章主要为大家详细介绍了java实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 使用BufferedReader读取TXT文件中数值,并输出最大值

    使用BufferedReader读取TXT文件中数值,并输出最大值

    这篇文章主要介绍了使用BufferedReader读取TXT文件中数值,并输出最大值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java线性表的存储结构及其代码实现

    java线性表的存储结构及其代码实现

    这篇文章主要为大家详细介绍了Java数据结构学习笔记第一篇,线性表的存储结构及其代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • SpringBoot中的声明式事务+切面事务+编程式事务详解

    SpringBoot中的声明式事务+切面事务+编程式事务详解

    这篇文章主要介绍了SpringBoot中的声明式事务+切面事务+编程式事务详解,事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性,需要的朋友可以参考下
    2023-08-08
  • java仅用30行代码就实现了视频转音频的批量转换

    java仅用30行代码就实现了视频转音频的批量转换

    这篇文章主要介绍了java仅用30行代码就实现了视频转音频的批量转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论