小编给大家分享一下Scala有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
一、基础
1、在Scala声明值和变量的时候,用val声明的值是不能改变你赋予它的内容的,而var可以。如下:
scala>val answer = 8 answer: Int = 8
以val定义的值实际上是一个常量——无法改变其内容。
如果我们想要声明其值可以改变的变量,我们可以用var:
var counter = 0 counter = 1 //OK,我们可以改变一个var
2、在指定变量类型的时候,Scala和Java有一些差别:
Java:
String greeting;
Scala:
val greeting: String = null;
3、Scala7种数值类型:Byte、Char、Short、Int、Long、Float、Double、Boolean。
4、在Scala中,我们用方法,而不是强制类型转换,来做数值类型之间的转换。例如:99.44.toInt得到99,99.toChar得到'c'。和Java一样,toString将任意的对象转换成字符串。
要将包含了数字的字符串转换成数值,使用toInt或者toDouble。例如,“99.44”.toDouble得到99.44。
5、Scala的算术和操作符重载时需要注意的是:Scala中的操作符实际上是方法。
比如说:
a + b
是如下方法调用的简写:
a.+(b)
此处的+是方法名。Scala中可以使用几乎任何符号来为方法命名,通常来说,你可以用:
a 方法 b
作为一下代码的简写:
a.方法(b)
这里的方法是一个带有两个参数的方法(一个隐式的和一个显式的)。例如:
1.to(10)可以写成: 1 to 10
6、Scala还有一个显著的不同,Scala并没有提供++和--操作符,我们需要使用+=1或者-=1
7、在Scala中的通配符是 _ 而不像是java的 * 。例如在引入时,import scala.math._
8、Scala的apply方法是一个很常用的方法。举例来说,如果s是一个字符串,那么s(i)就是该字符串的第i个字符。而字C++中,我们会写成s[i],在java中,我们会写成s.charAt(i)。在Scala中,我们却可以直接这样:"Hello"(4)//这样将会产出'o'。可以将这种方法看做是()操作符的重载形式,它背后实现原理是一个名为apply的方法。例如,在StringOps类的文档中,有以下方法:
def apply(n: Int):Char
其实也就是说,"Hello"(4)是如下语句的简写:
"Hello".apply(4)
9、Java程序员们使用Javadoc来浏览Java API,Scala也有自己的版本,叫做Scaladoc。
二、控制结构和函数
1、Scala的if/else语法结构和Java或C++一样。但是,值得注意的是在Scala中if/else表达式是有值的,这个值就是跟在if或else之后的表达式的值。如:
if (x > 0) 1 else -1
上述表达式的值是1或者-1,具体取决于x的值。甚至可以将if/else表达式的值赋值给变量:
val s = if (x > 0) 1 else -1
这和下面的语句效果是一样的:
if (x > 0) s = 1 else s = -1
但是,第一种写法更好,因为它用来初始化一个val,而在第二种写法中,s必须是var。
看完了这篇文章,相信你对“Scala有什么用”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。