基本类型和操作与Java一样,下面这些特别的也是不常用的,完全可以照Java的风格来。
1.三引号("""),内部的原始字串可以包含无论何种任意字符,包括新行,引号和特殊字符
管道符号(|)放在每行前面,然后在整个字串上调用stripMargin:
println("""|Welcome to Ultamix 3000. |Type "HELP" for help.""".stripMargin)
2.符号文本被写成'<标识符>,这里<标识符>可以是任何字母或数字的标识符。
3.操作符标注(包含前缀操作符、中缀操作符和后缀操作符)
Scala里的操作符不是特殊的语言语法:任何方法都可以是操作符。使用方法的方式使它成为操作符。如果写成s.indexOf('o'),indexOf就不是操作符。不过如果写成,s indexOf 'o',那么indexOf就是中缀操作符了,因为你以操作符标注方式使用它。
前缀标注中,方法名被放在调用的对象之前,如,-7里的‘-’。后缀标注中,方法放在对象之后,如,“7 toLong”里的“toLong”。
与中缀操作符——操作符带后两个操作数,一个在左一个在右——相反,前缀和后缀操作符都是一元:unary的:它们仅带一个操作数。
可以当作前缀操作符用的标识符只有+,-,!和~。因此,如果你定义了名为unary_!的方法,就可以像!p这样在合适的类型值或变量上用前缀操作符方式调用这个方法。但是如果你定义了名为unary_*的方法,就没办法用成前缀操作符了,因为*不是四种可以当作前缀操作符用的标识符之一。你可以像平常那用调用它,如p.unary_*,但如果尝试像*p这么调用,Scala就会把它理解为*.p,这或许就不会是你想当然的了!
后缀操作符是不用点或括号调用的不带任何参数的方法。Scala里,你可以舍弃方法调用的空括号。例外就是如果方法带有副作用就加上括号,如println(),不过如果方法没有副作用就可以去掉括号,如String上调用的toLowerCase
4.富包装器,每个基本类型,都有一个“富包装器”可以提供许多额外的方法。在包scala.runtime.Richxxx下