文档章节

基本类型和操作之字面量

柳哥
 柳哥
发布于 2014/06/05 23:14
字数 1085
阅读 178
收藏 0

整数字面量
类型Int、Long、Short、Byte的整数字面量有三种格式:十进制、十六进制和八进制。
1. 十六进制
如果数开始于0x0X,那它是十六进制,并且可能包含从0到9,及大写或小写的从A到F的数字。如例:


请注意,不论用什么形式的整数字面量初始化,scala的shell始终打印输出基于10进制的整数值。

2. 八进制

如果数开始于0,就是八进制的,并且只可以包含数字0到7,如例:

注:为什么有警告信息,还不太清楚!!!!(听说从2.10版本开始,八进制表示法被废弃,让所以才有警告。最新的测试2.11.7版本上直接就是报错了!!!!难道不能这样使用了!!???

3. 十进制

如果数开始于非0数字,并且没有被修饰过,就是十进制的。例如:

上面讲了三种进制的表示方法,下面来说说Long类型的表示。如果整数字面量结束于L或l,就是Long类型,否则就是Int类型。例如:

再来说说浮点数字面量,浮点数字面量是由十进制数字、可选小数点、可靠的E或e及指数部分组成的。例如:


请注意指数部分表示的是乘上以10为底的幂级数。因此,1.2345e1就是1.2345 * 10。如果浮点数字面量以F或f结束,就是Float类型的,否则就是double类型的,可选的。Double浮点数字面量也是可以D或d结尾。Float字面量的例子如下:

Double字面量的例子:


字符字面量

字符字面量可以是在单引号之间的任何Unicode字符,如:

单引号之间除了可以摆放字符之外,还可以提供一个前缀反斜杠的八进制或十六进制的表示字符编码号的数字。八进制数必须在’\0’和’\377’之间。例如字母A的Unicode字符编码是八进制101(注:scala2.10.7下也出现了警告,估计后面也不能用了吧!!!!!),因此:


字符字面量同样可以以前缀’\u’的四位十六进制数字的通用Unicode字符方式给出,如:

最后,还有一些字符字面量被表示成特殊的转义序列,例如:



字符串字面量
字符串字面量是由双引号(“”)包括的字符组成:


引号内的字符语法与字符字面量相同,如:

由于这种语法对于包含大量转义序列跨越若干行的字符串很笨抽。因此scala为原始字符串引入了一种特殊的语法。它以同一行里的三个引号(“””)作为开始和结束。内部的原始字符串可以包含无论何种任意字符,包括新行、引号和特殊字符,当然同一行的三个引号除外。举例来说,下面的程序使用原始字符串打印输出了一条消息:

println("""wo Ultamix elcome 3000.
    Type "HELP" for help. \\\\u0008\101\t""")

结果:

执行结果看起来是正确的,其实并不对原因是第二行前导空格被包含在了字符串里。为了解决这个常见问题,字符串类引入了stripMargin方法。使用的方法是,把管道符号(|)放在每行前面,然后对整个字符串调用stripMargin:

println("""|wo Ultamix elcome 3000.
    |Type "HELP" for help. \\\\u0008\101\t""".stripMargin)

结果:


这样的结果就令人满意了。


符号字面量
符号字面量被写成:<标识符> ,这里<标识符>可以是任何字母或数字的标识(注意:不能以数字开头)这种字面量被映射成预定义类scala.Symbol的实例
符号字面量除了显示名字之外,什么都不能做: 


还有就是符号是被限定(interned)的,如果同一个符号字面量出现两次,那么两个字面量指向的是同一个Symbol对象(注意:这个跟字符串常量池是一样的)。关于Symbol类型,我们在下一篇中说明。


布尔型字面量
布尔类型有两个字面量,truefalse


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 203
博文 405
码字总数 347782
作品 0
杭州
技术主管
Swift - 变量、常量、可选项、字面量

Swift变量 变量是一种使用方便的占位符,用于引用计算机内存地址。 Swift每个变量都指定了特定的类型,该类型决定了变量占用内存的大小,不同的数据类型也可以决定可以存储值的范围。 上一篇...

Albert_Lee
2017/11/15
0
0
6. Java 中的基本数据类型 【连载 6】

数据类型定义了变量可以采用的值,例如,定义变量为 类型,则只能取整数值。 在 Java 中有两类数据类型: 1)原始数据类型 2)非原始数据类型 - 数组和字符串是非原始数据类型,将在以后的教...

密叔
01/07
0
0
C++ 容易忘的基本语法和特性

原文:C++ 容易忘的基本语法和特性 作者:Breaker 标准 C++ 中容易忘记但比较重要和常用的基本语法和特性 这是 C++ 或 C in C++,而不一定是传统 C 语言的语法和特性 零 0 字面量 0 是基本类...

晨曦之光
2012/05/23
147
0
基本类型和操作之理解Symbol类型

相信很多人和我一样,在刚接触scala时,会觉得Symbol类型很奇怪,既然Scala中字符串都是不可变的,那么Symbol类型到底有什么作用呢?简单来说,相比较于String类型,Symbol类型有两个比较明显...

柳哥
2014/06/05
0
0
swift官方推荐翻译文档之集合类型

Swift 语言提供、和三种基本的集合类型用来存储集合数据。数组(Arrays)是有序数据的集。集合(Sets)是无序无重复数据的集。字典(Dictionaries)是无序的键值对的集。 Swift 语言中的、和...

哪一种黑
2016/03/10
25
0

没有更多内容

加载失败,请刷新页面

加载更多

各种开源汇编、反汇编引擎的非专业比较

由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己...

simpower
23分钟前
3
0
(4)添加vue-router

(4)添加vue-router 1 安装vue-router cnpm install vue-router --save 2 页面准备 新建目录/src/views/common,此目录下面建立4个组件404.vue、home.vue、login.vue、theme.vue。每个文件...

neumeng
26分钟前
2
0
高可用性系统在大众点评的实践与经验

背景 所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用...

Skqing
33分钟前
3
0
Network protocols

The network stack does serveral seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detactable hiccups. It adapts smooth......

nao
35分钟前
1
0
Android 生命周期方法

1,onCreate(); 2,onStart(); 3,onResume(); //打开页面,前三个方法自动执行 4,onPause(); 5,onStop(); //打开其他页面,前一个页面执行这俩方法 6,onRestart(); //onStart(),onResume //当关闭...

lanyu96
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部