特殊符号无非就这些:`、~、@、#、$、%、^、&、*、-、=、{、[、;、:、|、<、/、?等这些。

简直是令人发指啊!
不过谁让Scala大数据必备语言呢,嗯,还优雅,哈哈。
用用就习惯它的风格了。

用的最多的是:-+=:_<>/ 进行组合!!

1、+=-=
+=:为可变数组添加元素、为map添加新的值
-=: 为可变数组减去元素、为map移除相应的值

scala> var s:String = "a"
s: String = ascala> s += "b"scala> s
res1: String = abscala> s ++= "c"scala> s
res3: String = abcscala> var a = Map(1->2,2->3)
a: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 2 -> 3)scala> a += (3->4)scala> a
res6: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4)scala> a -= (3)scala> a
res10: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 2 -> 3)

2、::(构造列表)两个冒号:表示普通元素与list的连接操作

  • 用法为x::list,其中x为加入到头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1
  • x::list等价于list.::(x)
  • :::方法:只能用于连接两个List类型的集合

3、:+和+:(列表追加元素)

  • :+方法:用于在尾部追加元素
  • +:方法:用于在头部追加元素
  • 只要记住冒号永远靠近集合类型
scala> List(1,2,3)
res14: List[Int] = List(1, 2, 3)scala> res14:+2
res15: List[Int] = List(1, 2, 3, 2)scala> 3+:res14
res16: List[Int] = List(3, 1, 2, 3)

4、++(连接两个Seq)

  • 列表、集合、字符串、Map
  • :::方法:只能用于连接两个List类型的集合
scala> val a = List(1,2,3)
a: List[Int] = List(1, 2, 3)scala> a++List(4,5,6)
res17: List[Int] = List(1, 2, 3, 4, 5, 6)

5、<-(遍历集合)

scala> var arr = Array(1,2,3,4)
arr: Array[Int] = Array(1, 2, 3, 4)scala> for (i <- arr) {|    println(i)| }
1
2
3
4

6、->(返回一个二元元组Tuple)

scala> var a = List(1,2,3)
a: List[Int] = List(1, 2, 3)scala> var b = List(4,5,6)
b: List[Int] = List(4, 5, 6)scala> a -> b
res19: (List[Int], List[Int]) = (List(1, 2, 3),List(4, 5, 6))

7、=>(匿名函数)
匿名函数定义:

(形参列表) => {函数体}
  • 左边的参数 到 右边的函数体,比如:(x:Int) => x+1
  • 可以有一个变量接收

8、_下划线

  • 通配符
  • 访问元组。_N访问元组第N个元素
scala> val tup = (1,2,3)
tup: (Int, Int, Int) = (1,2,3)scala> tup._1
res20: Int = 1
  • 将方法转换成函数

    • val f1 = m _
    • 在方法名称m后面紧跟一个空格和下划线告诉编译器将方法m转换成函数,而不是要调用这个方法
  • 递归调用:把里面每个元素提取出来。:_* 作为一个整体,告诉编译器你希望将某个参数当做数序列处理
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 ;
}
  • 指代集合中的每个元素
scala> var list = List(1,2,3,4)
list: List[Int] = List(1, 2, 3, 4)scala> list.map(_*2)
res23: List[Int] = List(2, 4, 6, 8)
  • 代表某一类型的默认值

    • 加不加空格都可以
    • 对于Int类型来说,它是0
    • 对于Double来说,它是0.0
    • 对于引用类型来说,它是null
scala> var a:Int = _
a: Int = 0scala> var a:Float = _
a: Float = 0.0

9、/::\
/::\ 分别对应 foldLeft 和 foldRight 函数,是它们的缩写。详解:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)scala> def ss(x: List[Int]): (Int, Int, Int) = x./:((0,0,0))((t,v) => (t._1 +2,t._2+v,t._3+v*v))
ss: (x: List[Int])(Int, Int, Int)scala> ss(a)
res25: (Int, Int, Int) = (8,10,30)

注:x./:((0, 0, 0))((t, v) => (t._1 + 2, t._2 + v, t._3 + v * v)) 表示对集合 x 进行循环,其中 (0,0,0) 代表函数 (t._1 + 2, t._2 + v, t._3 + v * v) 的初始值,t 作为一个记录结果的值,而 v 代表每次传进来的集合 x 的值

第一次循环:0+2,0+1,0+1
第二次循环:2+2,1+2,1+4
第三次循环:4+2,3+3,5+9
第四次循环:6+2,6+4,14+16

10、<:>:
这属于Scala泛型中的知识:上边界和下边界。上边界是<:,下边界是>:

[Scala]006-遇到的懵圈特殊符号组合-解释大全相关推荐

  1. Linux中每次都懵圈的错误重定向

    每次都懵圈的错误重定向 文章目录 每次都懵圈的错误重定向 一.描述符说明 二.实验阶段 初始化 输出重定向 错误重定向 同时输出和错误重定向 三.常用的重定向 四.参考 一.描述符说明 在Linux系 ...

  2. php 两个符号怎么打,怎么打出圈2符号

    打出圈2符号的方法:首先新建一个word文档,点击"插入":然后点击"符号",选择"其他符号":接着选择"普通文本",子 ...

  3. 中考禁用计算机,今年中考数学科禁用计算器,消息来得太突然,懵圈了吧?

    原标题:今年中考数学科禁用计算器,消息来得太突然,懵圈了吧? 上星期刚落幕了一场年度大戏<高考>,然而,6月的硝烟仍未散去,中考接踵而来,梧州的初三学子进入到最为关键的复习阶段.近日,离哥 ...

  4. php这个符号怎么打,怎么打出圈2符号

    打出圈2符号的方法:首先新建一个word文档,点击"插入":然后点击"符号",选择"其他符号":接着选择"普通文本",子 ...

  5. 教师计算机桌面文件乱图片,调皮学生恶作剧,把老师的电脑壁纸换了,老师打开一看懵圈了...

    原标题:调皮学生恶作剧,把老师的电脑壁纸换了,老师打开一看懵圈了 很多教师都表示作为一名教师,其实是非常不容易的,除了要有足够专业的知识以外,还应该有很高的教学管理能力,因为在教学学的过程中总会遇到一 ...

  6. Java面试集锦:面试官只问一个问题,30几人集体懵圈

    Java面试集锦:面试官只问一个问题,30几人集体懵圈 有的时候面试官的问题真的层出不穷,今天就又遇到了一个奇葩的问题(你是面试官你说了算).面试时候,直接给拿出了一个特别"复杂" ...

  7. 华为鸿蒙系统界面_谷歌懵圈!华为鸿蒙系统界面首次曝光,网友纷纷表示支持...

    谷歌懵圈!华为鸿蒙系统界面首次曝光,网友纷纷表示支持 最近的科技圈被华为禁令的消息刷屏,甚至已经上升到人尽皆知的地步,制裁华为的禁令诱发一连串的连锁效应.大量海外供应商集体宣布断供,而就连和华为合作已 ...

  8. Asp.Net中几种相似数据绑定标记符号的解释及用法

    Asp.Net中几种相似数据绑定标记符号的解释及用法1.<%#... %> 是在绑定控件DataBind()方法执行时被执行,用于数据绑定 如: <%# Container.Data ...

  9. 【常用】数学符号及读法大全

    数学符号及读法大全 常用数学输入符号: ≈ ≡ ≠ = ≤≥ < > ≮ ≯ ∷ ± + - × ÷ / ∫ ∮ ∝ ∞ ∧ ∨ ∑ [ ∏ π ] ∪ ∩ ∈ ∉ ∵ ∴  ⊥ | ∠  ...

最新文章

  1. C语言以递归求斐波那契数列(附完整源码)
  2. 分布式锁是啥?zk还是redis?
  3. Redis分布式锁实战
  4. 用户增删改查 django生命周期 数据库操作
  5. Python:OpenCV4人脸关键点检测以及表情检测
  6. 操作系统实验七:动态分区分配方式的模拟
  7. 你为什么要去博物馆? 我的理由比较另类
  8. LOJ#6198. 谢特【后缀自动机/数组 + Trie树查异或最大值 + Trie树合并】
  9. 线性代数基础6--空间的基,维数,以及四种重要子空间.
  10. 为什么我们需要关注基于 EIP-3664 标准的可拆分,可组合的NFT?
  11. C# 篇基础知识6——文件和流
  12. Browser --- 更换bookmark、homepage及常见问题
  13. 如何用css实现一段文字的两端对齐和分散对齐
  14. 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言
  15. iRobot 推出 Create 3,内置 ROS 2 机器人开发平台(转载)
  16. InChat版,仅仅两个接口实现自己的IM系统(可兼容)
  17. 河北省沧州市谷歌卫星地图下载
  18. 17岁高考落榜生成为世界顶尖IT高手
  19. 如何把mo3格式的文件转换成mp3格式
  20. 汇编c语言混合编程pdf,C语言及汇编语言混合编程的方法.pdf

热门文章

  1. vim插件管理器:Vundle的介绍及安装(很全)
  2. ROS报错记录及解决方法
  3. mesh(三角面片)数据解析
  4. 三体智能革命_作者签名书!同时送三体智能革命与机智:从数字化车间走向智能制造...
  5. MATLAB:nc文件转tif
  6. Python Opencv 图片识别表格:边框线检测
  7. 机器学习系列(5)_特征工程02特征提取
  8. gulp 压缩html内的js,gulp实战技巧之gulp-uglify压缩js
  9. 多表的多种连接查询和事务ACID
  10. 角谷猜想(角夫猜想)