文档章节

基本类型和操作之字面量

柳哥
 柳哥
发布于 2014/06/05 23:14
字数 1085
阅读 189
收藏 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


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 206
博文 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
161
0
【重温基础】1.语法和数据类型

最近开始把精力放在重新复习JavaScript的基础知识上面,不再太追求各种花枝招展的前端框架,框架再多,适合实际项目才是最重要。 上星期在掘金发布了几篇文章,其中最大块算是 【复习资料】E...

pingan8787
12/10
0
0
基本类型和操作之理解Symbol类型

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

柳哥
2014/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
7分钟前
0
0
java框架学习日志-4

补充一些spring配置文件的方法。 设置别名: <!--通过name直接设置别名--> <bean name="user2" class="cn.sxt.factory.UserDynamicFactory"> </bean> <!--有id的情况下也可以设置......

白话
9分钟前
0
0
20181213 上课截图

小丑鱼00
25分钟前
1
0
nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题

https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages For reference, I am attaching my location block for catching files with the .php extension: location ~......

Yao--靠自己
33分钟前
1
0
mac 没声音

somehow不时就会出现这种情况。之前都得重启。 其实可以直接在terminal里打以下命令: sudo kextunload /System/Library/Extensions/AppleHDA.kext sudo kextload /System/Library/Extension...

dubox
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部