`

Scala 各种符号的含义(->,:::,::,<-,=>)

 
阅读更多
:::运算符
:::(三个冒号)表示List的连接操作,比如:

val a = List(1, 2)   
val b = List(3, 4)   
val c = a ::: b  


其中a,b保持不变,a和b连接产生一个新表List(1,2,3,4),而不是在a上面做add操作。
Scala中的List不同于Java的List,Java声明final List javaList,表示java List一旦初始化,那么不能再为它赋值,但是它其中的元素可以变化,

::运算符
::(两个冒号)表示普通元素与List的连接操作,比如:

val a = 1  
val b = List(3, 4)  
val c = 1 :: b  


则c的结果是List(1,3,4),需要注意的是,1:: b操作,::是右侧对象的方法,即它是b对象的方法,而::左侧的运算数是::方法的参数,所以1::b的含义是b.::(1)

+ - * / %运算符
在Scala中,+,-,*,/都是函数,比如 1+2,实质上是对象1上调用+函数,传入的参数是2,等价于(1).+(2)

=>
匿名函数
_N(下划线数字)

val pair = (99, "Luftballons")  
println(pair._1)  
println(pair._2)  


_N用于访问元组的第N个元素(N从1开始算起),元组不同于List或者Array,元组(Tuple)中的元素可以不同

->
->方法是所有Scala对象都有的方法,比如A->B,->方法调用的结果是返回一个二元的元组(A,B)

<-

def printArgs(args: Array[String]): Unit = {  
   for (arg <- args) //表示什么含义,<-应该是一个函数,这个函数是哪个对象调用的?  
   println(arg)  
} 


<-用于遍历集合对象(可遍历对象)B,在每次遍历的过程中,生成一个新的对象A,这个A是val,而不是var,然后对循环体中对A进行处理,<-在Scala中称为generator。 不需要显式的指定A的类型,因为Scala使用自动推导的方式根据B的元素类型得出A的类型。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Scala编程详解 第9讲-Scala编程详解:数组操作之Array、ArrayBuffer以及遍历数组 共7页.pptx

    val str2 = a.mkString("&lt;", ",", "&gt;") // 使用自定义符号连接 val str3 = a.toString // 默认的toString表示 ``` 在Scala中,数组和ArrayBuffer的灵活运用能够帮助我们高效地处理数据,特别是在大数据场景下,这些...

    Scala函数式编程

    5 各种重载的符号使用 之前读过 programming in scala,对语言的整体还停留在: 1 scala用起来比java更灵活 2 强大的collection,可以更加方便的处理collection类的数据 3 不同于java的并行处理方法,有点像c的...

    使用spark 对文本分词统计

    JavaPairRDD&lt;String, Integer&gt; wordCount = wordRDD.mapToPair(s -&gt; new Tuple2&lt;&gt;(s[0], 1)) .reduceByKey((a, b) -&gt; a + b); wordCount.foreach(println); ``` 5. **运行和结果展示**:最后,你可以通过`spark...

    【最全整理】IntelliJ IDEA快捷键大全

    IntelliJ IDEA是一款由JetBrains公司开发的集成开发环境(IDE),主要支持Java开发,同时也提供了对其他编程语言如Kotlin、Scala等的支持。它在开发者社区中广受好评,原因在于其强大的功能和高效的开发体验。...

    matlab信任模型代码-codes:平衡的

    尽管具有重要意义,但是用于生成带符号网络的现有模型不能正确反映真实世界图形的属性。 在本文中,我们提出BalanSiNG,这是一种新颖的,可伸缩的,完全可并行化的方法,用于根据实际属性生成大规模的带符号网络。 ...

    Design Of Scala中文

    例如,定义一个简单的比较函数`val compare = (x: Int, y: Int) =&gt; x &gt; y`,并将其作为参数传递给`list.sortWith(compare)`。 #### 四、函数作为值的应用 Scala将函数视为第一等公民,这使得函数可以被当作普通值...

    emojipasta-topic-modeling:Spark经过Spark和LDA模型(NSFW)训练的reddit.comrEmojiPasta主题模型-触发警告:remojipasta subreddit发布有争议的内容,而我所抓取的任何内容都是为了提供对主题建模的可见性有争议的内容。 不幸的是,也必须有歧视性的言论!

    在使用Scala编程语言实现此项目时,首先需要从Reddit API或网页抓取r/EmojiPasta的数据,然后进行预处理,包括去除停用词、标点符号以及转换为小写等步骤。接着,通过Spark的DataFrame API,可以方便地对数据进行...

    scala in depth电子书

    在风格和编码习惯方面,本书推荐使用有意义的变量命名,并避免在命名中使用$符号。书中还涉及了在函数和方法中使用命名参数和默认参数的实践,以及如何为被覆盖的方法进行标记,以便于维护和扩展。 Scala提供了一种...

    Spark大数据中文分词统计Scala语言工程源码

    《Spark大数据中文分词统计Scala语言工程源码详解》 在大数据处理领域,Apache Spark以其高效、易用的特性成为了众多开发者的首选工具。而针对中文数据,分词是进行文本分析的重要步骤,尤其在诸如情感分析、关键词...

    stags:Scala标签生成器

    Scala标签生成的背景与意义** 在编程环境中,能够快速定位和理解代码结构是提高生产力的关键。传统的`ctags`工具广泛应用于C、C++、Java等语言,为开发者提供了代码跳转的能力。然而,由于Scala的复杂性,如类型...

    Spark编程挑战题目

    - 清洗数据,去除无用信息如URL、表情符号等。 2. **情感分析算法:** - 利用自然语言处理(NLP)技术识别文本中的关键词。 - 应用情感词典或机器学习模型判断每条推文的情感倾向(积极、消极或中立)。 3. **...

    reb4s:Scala 的正则表达式生成器

    关于 reb4s reb4s的目的是围绕 JRE 的类提供的正则表达式语法提供一个纯 Scala 包装器。 它是一个分支,它通过纯 Java API 提供相同的功能。 与直接编写正则表达式相比,reb4s具有以下优点: reb4s API 保证正确的...

    PHP解析器:基于Scala的解析器,用于最新PHP版本

    词法分析器将源代码分解成一系列有意义的符号,称为标记(Token),这些标记是解析器理解代码的基础。例如,识别关键字、变量、字符串、数字等。 2. **语法分析(Syntactic Analysis)**:词法分析后的标记被送入...

    JVM入门到JVM 调优实战

    JVM的设计使得它可以处理不同语言编译后的字节码,如Scala、Kotlin等,只要它们遵循Java Class文件格式。 【Class加载过程】 Class加载过程包括加载、验证、准备、解析和初始化五个阶段。加载阶段是查找并读取类的...

    chisel-getting-started-chinese

    ### Chisel:一种嵌入Scala中的硬件构造语言 #### 引言 Chisel是一种用于硬件设计的高级语言,它被嵌入到了Scala编程语言中。本文档旨在为初学者提供Chisel的基本使用教程,帮助读者了解如何使用Chisel进行硬件...

    2021年软件开发应知应会-84分之欧阳学文创编.pdf

    14. Scala语言特点:Scala是面向对象和函数式的,同时具有可扩展性和静态类型。 15. MyBatis:MyBatis是一个开源的对象关系映射框架,简化了数据库操作。 16. Web主要功能:Web服务器返回信息,同时处理客户端的...

    Trapezoid Fuzzy Linguistic WGA Operator

    1. **基于扩展原则的方法**:这种方法通过对支持语言术语意义的模糊数字进行操作来实现。它将语言术语映射为模糊数,并在此基础上进行计算。 2. **基于符号的方法**:该方法通过对语言术语的索引进行计算来处理语言...

    计算机程序设计——程序设计语言.docx

    语法定义了语言的结构,包括变量、运算符、关键字等元素的排列方式,但并不涉及它们的具体含义。例如,C++中的"if"语句或Python中的函数定义,都需要遵循特定的语法结构。 2. 语义:语义关注的是程序的意义,即程序...

    随机字符串自动生成器

    随机字符串是由各种字符(包括字母、数字和特殊符号)随机组合而成的序列,每个字符的选取是基于一定的随机性原则,确保每次生成的结果不固定。在编程中,通常使用内置的随机数生成函数来实现这一功能。 在“随机...

Global site tag (gtag.js) - Google Analytics