scala --操作符和运算
基本类型和操作
scala
的基本类型包括如下几种
数类型
整数类型 :Byte Short Int Long
小数类型: Float Double
字符类型:Char 用'' 单引号包裹,是Unicode字符 转义字符也属于字符类型。
字符串类型: String 【属于java.lang包】 用" " 双引号包裹 。 **""" """ ** 三引号表示,为原始字符串
布尔值: Boolean
除了String 属于Java.lang 包,其他都属于 scala 包
如:Int 全名为 scala.Int ,但是,scala包和java.lang 包被每个源文件自动引用,所以可以简写为 Int
字面量 就是直接写在代码里的常量值。
println(
"""hello
world
""")
/*
显示如下
hello
world
*/ //因为""" 里面是原始字符,换行,空格,缩紧什么都会保持原样,所以就出现了字符串错位的情况,为了解决这个问题,我们使用 stringMargin方法。如下
println(
"""|hello
|world
""".stripMargin)
/*
hello
world
/*
符号字面量
'<标识符>
标识符可以是任何字母或数字(不能为数字开头)。如:'hellokitty
。符号字面量的唯一作用就是显示名字。
scala> val a = 'hello
// s: Symbol = 'hello
scala> a.name
// res9: String = hello
/*注意区分 String类型
scala> val s = "hello"
//b: String = hello
scala> s.name //报错
scala> val m = '1234567 //报错
scala> val o = '1234a //报错
scala> val n = 'a122456 //没问题
符号字面量是 scala.Symbol 的实例。 符号是限定的,如果有两个一样的符号字面量,那么两个字面量指向同一个Symbol对象。
操作符和方法
scala
没有传统别的语言意义上的运算符,所有的+
-
*
/
等运算符其实是对象的方法。例如:
1 + 2 //实际是:
1.+(2) //调用了 1的+ 方法,并且把2作为参数传给它。
+
是操作符,更具体的说是中缀操作符。操作符标注,不仅限于像+
这种其他语言里看上去像操作符的东西,任何方法都可以被当作操作符来标注。例如上次我们的那个 类和对象里面有一个方法
val result = cs.add(100)
就可以写成如下形式
val result = cs add (100)
因为仅有一个参数,所以,小括号也可以省略,如下:
val result = cs add 100
scala 中,操作符不是特殊的语法,任何方法都可以是操作符。此二者只是对同一个函数,不同的使用方式造成的名字不同而已。
前缀操作符
前缀操作符是一元的,操作符在前,操作数在后。如-10
,这些和中缀操作符一样,都是值对象调用方法的简写形式。
然而,他们的方法写法为unary_
.如:
println(-2)
println(2.unary_-)
标识符中能作为前缀操作符的只有 +
-
!
~
四个。
后缀操作符
后缀操作符也是一元的。操作数在前,操作符在后。后缀操作符,是不用点或括号的不带任何参数的方法。在scala中,方法调用的空括号可以省略。
惯例是,如果方法带有副作用那就加上括号,如println(),如果没有副作用就去掉括号。
println("Hello World".toLowerCase())//点调用,有括号
println("Hello World".toLowerCase) // 省略了括号
println("Hello World" toLowerCase) //后缀操作符
注意,后缀操作符和操作符标注是有区别的。
其余的操作符运算、优先级,和其他语言没什么差别。
scala --操作符和运算的更多相关文章
- learning scala 操作符
scala 操作符: 算术运算符: + - * / % 关系统运算符: > , < ,= ,!= ,>=,<=, 逻辑运算符: && . || , ! 位 ...
- scala操作符&运行
---恢复内容开始--- #操作符运算 数学操作符 + - * / % 比较操作符 < > >= =< 逻辑操作符 && || 对等操作符 == != 位操 ...
- Scala 操作符与提取器
实际上Scala没有操作符, 只是以操作符的格式使用方法. 操作符的优先级取决于第一个字符(除了赋值操作符), 而结合性取决于最后一个字符 Scala的操作符命名更加灵活:) 操作符 中置操作符(In ...
- scala 实现日期运算
在scala程序中,有时我们需要对日期进行运算,比如一天之前,两天之前,一个月之前等等,本博文给出了简单的实现方式 val cal = Calendar.getInstance cal.add(Cal ...
- Scala基础(1)
Scala基础语法 声明与定义: val,常量声明 val x:T(把x声明成一个类型为T的常量) x是变量的名字,T是变量的类型 v ...
- Scala学习笔记——入门
0.在 scala> 下运行Scala程序 首先cd到.scala文件所在的目录下 scalac这个scala文件,然后import package的名字.object的名字 然后就能使用 ob ...
- 大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池
第0章 预备知识0.1 Scala0.1.1 Scala 操作符0.1.2 拉链操作0.2 Spark Core0.2.1 Spark RDD 持久化0.2.2 Spark 共享变量0.3 Spark ...
- js中的位运算
按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是"位": 数值或字符在内存内都是被存储为0和 1的序列,每个0和1被称之为1个位,比如说10 ...
- 使用栈Stack对整数数值的运算表达式字符串进行运算C#
这里如果对于形如字符串“((6+((7+8)-9)*9+8/2)-3)/2”的运算表达式进行运算.接触过此类的同学知道这种存在着运算符优先级的表达式,不能直接从左到右进行运算,我们使用OperandS ...
随机推荐
- WinForm下ComboBox设定SelectedValue总结 (SelectedValue==null解决办法)[转]
http://www.cnblogs.com/qqflying/archive/2013/05/23/3096050.html 实践发现:以SelectedIndex赋值让ComboBox自动选中时能 ...
- java 物理资源回收 finally与try
java垃圾回收机制不会回收任何物理资源(磁盘文件.数据库连接.网络连接),垃圾回收机制只能回收堆内存中对象所占用的内存. 方法一使用finally块,在finally块中写入资源回收代码,如下: p ...
- spring Annotation based configuration
spring 注解相关 https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s11.html
- BASIC-2_蓝桥杯_01字串
问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 请按从小到大的顺序输出这32种01串. 输入格式 本试题没有输入. 输出格式 输出32行,按从小到大的顺 ...
- bzoj 4911: [Sdoi2017]切树游戏
考虑维护原树的lct,在上面dp,由于dp方程特殊,均为异或卷积或加法,计算中可以只使用fwt后的序列 v[w]表示联通子树的最浅点为w,且不选w的splay子树中的点 l[w]表示联通子树的最浅点在 ...
- C++中reinterpret_cast、const_cast、static_cast、dynamic_cast的作用与区别
1.reinterpret_cast 作用及原理:将一个类型的指针,转换为另一个类型的指针,这种转换不用修改指针变量值数据存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可以,当然他也可 ...
- 新生代老年代GC组合
新生代通常存活时间较短,因此基于Copying算法来进行回收,所谓Copying算法就是扫描出存活的对象,并复制到一块新的完全未使用的空间中 在执行机制上JVM提供了串行GC(SerialGC).并行 ...
- 【BZOJ】1013 [JSOI2008]球形空间产生器sphere(高斯消元)
题目 传送门:QWQ 分析 高斯消元就是个大暴力.... 代码 #include <bits/stdc++.h> using namespace std; ; ; int n; doubl ...
- 使用eclipse在linux下开发C/C++
一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译.调试代码也只能是命令行用gdb进行调试,相当 ...
- JAVA面试相关
2017 最新java面试题(技术面试) http://www.importnew.com/17232.html importNew-JAVA面试上篇 importNew-JAVA面试下篇 https ...