基本类型和操作之字面量

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

222959_DJOR_168814.jpg

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

2. 八进制

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

224617_pBrN_168814.jpg

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

3. 十进制

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

225001_8jqq_168814.jpg

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

225228_xdkf_168814.jpg

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

225436_YzMQ_168814.jpg

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

225724_RhHe_168814.jpg

Double字面量的例子:

225827_HkO1_168814.jpg


字符字面量

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

230102_MuuR_168814.jpg

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

230402_lEKA_168814.jpg

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

230530_ZP2U_168814.jpg

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

230653_h7Sk_168814.jpg


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

230855_keue_168814.jpg

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

231026_jxVj_168814.jpg

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

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

结果:

231448_DDhM_168814.jpg

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

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

结果:

231806_iUF9_168814.jpg

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


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

232128_D37c_168814.jpg

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


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

232400_VDsP_168814.jpg


转载于:https://my.oschina.net/fhd/blog/274019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值