`
bit1129
  • 浏览: 1051493 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Scala一】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,表示javaList一旦初始化,那么不能再为它赋值,但是它其中的元素可以变化,
 
 

::运算符

 

::(两个冒号)表示普通元素与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)
}

 

 

 Scala方法定义语法

 

 

 

如果函数体中的语句是一个,那么可以将包着方法体的{}省略,如:

 

def max(x :Int, y :Int) :Int = if (x > y) x else y;

 

 

 <- 运算符

 <-用于for循环中,如下所示

 

for (A <- B) {
   println(A)
}

 

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

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 27 KB
分享到:
评论

相关推荐

    Scala函数式编程

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

    Scala程序设计(第2版)

    5.7 Scala内置的各种隐式 139 5.8 合理使用隐式 146 5.9 本章回顾与下一章提要 146 第6章 Scala函数式编程 147 6.1 什么是函数式编程 148 6.1.1 数学中的函数 148 6.1.2 不可变变量 149 6.2 ...

    表情符号:在Scala中使用Unicode表情符号的最简单方法

    表情符号:在Scala中使用Unicode表情符号的最简单方法

    scala中常用特殊符号详解

    主要介绍了scala中常用特殊符号详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    scala-unicode:用于为 Scala 生成 unicode 表的 Scala 代码

    Scala-Unicode 该项目包含生成数据表的脚本,用于支持Scala Native和Scala.js平台的 。 生成的表或序列用于支持java.lang.Character和 Scala Native 中的re2s ,后者用于支持正则表达式(regex),包括java.util....

    crete:Scala中的符号一阶逻辑编程DSL

    Crete是Scala编程语言中用于逻辑推理的DSL。 使用克里特岛,您可以自然地编写一阶逻辑语句,就像手工编写它们一样。 特征 句子变得自然 以最直观的方式以一阶逻辑写句子: ∀( 'p )( 'smokes ( 'p ) & ! 'drinks ( ...

    Scala 运算符

    一个运算符是一个符号,用于告诉编译器来执行指定的数学运算和逻辑运算。 Scala 含有丰富的内置运算符,包括以下几种类型: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 接下来我们将为大家详细介绍以上...

    Scala基础(8)函数定义

    按照大家比较熟悉的定义变量的方式,采用Scala语法来定义一个函数,声明一个变量,我们采用的形式是: val num: Int = 5 // 当然Int类型声明也可以省略,应为Scala具有自动推断类型的功能 //按照上面的形式,来定义...

    scala-unsigned

    这是Scala的无符号整数的实现。 这项工作仍在进行中。 它的大部分内容是作为学习Scala的练习而写的。 该库提供: UInt 乌龙 字节数 美国hort 这些类分别通过装箱Int,Long,Byte和Short来实现。 使用方法: ...

    scarlsen-chess-engine:用 Scala 编写的国际象棋引擎实验

    此外,部分机会让我有机会尝试将 Scala 作为一种语言并了解它的真正效率在高度 CPU 密集型操作的领域中” ##资源 书:人与机器中的国际象棋技巧 - Peter W. Frey ##我需要涵盖的内容 一种在内存中存储游戏板表示...

    Scala 【 5 数组常见操作和 Map 】

    scala.until.Sorting.quickSort(a) //获取数据的所有元素内容 a.mkString //用符号分隔开 a.mkString(,) //加上左右符号 a.mkString() //toString 函数 a.toString b.toString 使用 yield 和函数式变成转换数组 // ...

    RPNCalculator:Scala 中内置的反向波兰符号计算器,用于工作中的即兴代码挑战

    一个建立在 scala 上的小型命令行计算器,它接受。 为什么? 有人在 Ruby 中发布了等效的版本,并要求任何愿意接受挑战的人使用他们选择的语言编写自己的语言。 由于我不是那种放过在 Scala 中编写代码的机会的人...

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

    关于 reb4s reb4s的目的... 由于支持组合,每个子表达式都可以被赋予一个有意义的名称来描述它所代表的内容。 由于reb4s对开发人员隐藏了正则表达式语法,因此不需要记住(或反复查找)哪些符号代表哪些表达式构造,也

    lambda:用Scala编写的无类型lambda演算解释器

    另外,为了保存表达式结果并能够在将来的表达式中使用它们,实现了一个符号表。 因此,解释器中实现了动态符号解析。 使用的基本CFG如下: EXPRESSION := ( EXPRESSION ) | VARIABLE | lambda VARIABLE . ...

    effectful, 在 Scala 中,类型安全effectful计算的语法.zip

    effectful, 在 Scala 中,类型安全effectful计算的语法 Effectful 如果我们想要理解所有这些结构的符号影响,也许我们应该尝试回收已经经拥有的符号。,Paterson,,,,。Effectful是一个小型的宏库,允许你以比 ...

    kentuckymule:Scala类型检查速度的限制

    从肯塔基州ule子那里学到的教训适用于各种可能的编译器,而不仅限于Scala编译器。 我的博客文章中描述了肯塔基M子的起源 自从我写博客文章以来,我将最初的问题改写为一个双重问题,但只有获胜的结果: 如何构建...

    scala-nameof:在编译时获取变量,函数,类成员的名称,或以字符串形式输入类型!

    scala-nameof:在编译时获取变量,函数,类成员的名称,或以字符串形式输入类型!

    owl2:Scala OWL2 API

    配置文件:OWL2 提供了多个配置文件,该 API 将以类型安全的方式公开这些配置文件中的每一个。 符号语法:可选择启用数学 DSL 以构建本体。 与 scala-js 交叉编译,为丰富的本体提供 Web 浏览器支持。

    larray:用于Scala和Java的大型堆外数组和mmap文件

    阵列 一个用于管理大型堆外数组的库,在Java和Scala中可以容纳超过2G(2 ^ 31)个条目。 值得注意的是,通过调用LArray.free可以一次性使用LArray.free 。 即使您忘记释放它,GC也会自动取消分配LArray所获取的内存...

    实现一个交互式的计算器

    基本功能如下:提示用户分别输入第一个数、第二个数、运算符号,然后给出计算结果;把刚才的结果作为下一次的操作数, 继续参加下一次的运算高级功能:实现运算的优先级,也就是先乘除后加减。可以有两种做法:1、...

Global site tag (gtag.js) - Google Analytics