Scala学习笔记(六)所谓Symbol

对于我这个一直沉溺在Java语言,拒绝接受ruby,groovy等动态语言的老古董来说,Symbol是在是个奇怪的东西,比较难理解,Scala文档中所有关于Symbol的字我都认识,但结合在一起就看不明白了,用处何在?

专门找了ruby中关于Symbol的学习资料,看了后,领悟如下:

1.Symbol 是Scala中所谓literal类型的一种,literal字面意思为文本,表现为可以直接在代码中写为常量值的东西,官方guide里面又细分为整数文本、字符文本、布尔文本,符号文本等

2.Symbol 本质上是字符串的再封装,相同名字(准确的说是值)的Symbol具有相同的instance,而相同名字(也是值)的字符串并不一定是同一个instance

3.如某字符串反复出现,而且值不会改变,那么,可以使用Symbol,但其实并不必须,同样可以使用字符串的变量名称。

val s ="abc" println(s) println('abc) f2('abc) f2(s)

4.Scala中需要使用Symbol的地方应该不多,源于Scala是静态检查类型语言,不同于动态语言,直接使用值,临时定义变量。

换言之,可以理解为static的字符串,与final无关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值