scala入门之变量定义

scala有两种变量,valvarval类似于Java里的final变量(字节码反编译成Java,其实就是final的变量)。一旦初始化了,val就不能再被赋值。相反,var如同Java里面的非final变量,可以在它的生命周期中被多次赋值。下面演示如何定义val变量:

192349_fSzA_168814.jpg

这个语句引入了msg作为字符串“hello,world!”的名字。它的类型是:java.lang.String,因为scala的字符串是由Java的String类实现的
如果曾经声明过Java变量,你会发现一个很显著的差别:无论是java.lang.String还是String都没有出现在对val变量的定义中。这个例子演示了被称为类型推断(type inference)的能力,它能让scala自动理解你省略了的类型。这里,你用字符串字面量初始化msg,因此scala推断msg的类型是String。对于可以由Scala解释器(或编译器)自动推断类型的情况,就没有必要非得写出类型标注不可。当然这也并不绝对,你可以根据自己的想法写明定义的类型,而且或许某些时候就应该这么做。写明类型标注不但可以确保scala编译器使用你想要用的类型,还有助于之后代码的阅读。Java的变量类型写在名称之前,相反,scala的变量类型写在其名称之后,用冒号分隔。如:

192725_kghx_168814.jpg

因为在scala程序里java.lang.*类型的简化名也是可见的,所以也可以写成如上例中msg3定义的那样。
由于msg,msg2,msg3是val类型变量,因此唯一不能做的就是再给它赋值。如果需要的是可以被重新赋值的变量,你应该使用var,如下:

193017_c5Lg_168814.jpg

想在解释器中跨行输入语句的话,只要不是在字符串、关键字等语句的中间进行换行,解释器将会在下一行回应一个竖线。如:

193316_UyFi_168814.jpg

如果你发现了一些错误而解释器仍在等着更多的输入,你可以通过按两次回车键取消掉。


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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值