scala基础语法
val和var
val和var都可以定义变量。val定义不变量,var定义变量
to和until
to和until都是RichInt
的方法,返回一个Range
的实例。1 to 3等价于1.to(3)
点和括号是可选的。在scala中,如果方法有0个或1个参数,则点号可以丢点。
foreach
(1 to 3).foreach( i => print(i + ",") )
元祖
元祖是一个不变对象序列,用逗号分隔符创建,元祖支持多重赋值,可以通过 _1, _2的语法访问元祖元素
val info = ("louis" , "shanghai")
val (name, address) = info
print(info._1)
print(info._2)
字符串RichString和here document
scala字符串与java中的String相对应,另外scala提供了RichString
类包含capitalize()、lines()和reverse()等便捷方法。scala使用三个双引号创建多行原始字符串(here document)
注意“sos”.reverse()==”sos”结果是false,
“sos”.reverse().toString()==”sos”是true。
Scala的默认选项
- scala支持脚本
- return是可选的,默认返回最后一行表达式的值
- 分号是可选的
- 不强制捕获异常
- 默认导入java.lang,scala,scala.Predef等包
运算符
scala的运算符实际上是方法名,方法名的第一个字符决定了它的优先级
如果方法名以冒号(:)结尾,Scala会调换方法调用的参数
scala与java的差异
- scala的赋值结果是Unit,因此不能出现 a = b = c这样的运算
- scala的==运算表示值的比较,eq()函数表示引用比较
- scala中分号是可选的,但在
{
前一定要加上分号 - scala默认修饰符是public
- 用protected修饰的成员只对本类及派生类可见
- scala使用
[]
控制修饰符的访问粒度,例如private[类名] - scala中如果使用了return就需要显示提供返回值的类型,应尽量避免显示return,而让scala编译推演返回类型