Scala笔记
Scala笔记
开拓者-2017 发表于3年前
Scala笔记
  • 发表于 3年前
  • 阅读 25
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 我很想学习spark,首先要学习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。

共有 人打赏支持
粉丝 35
博文 150
码字总数 301625
×
开拓者-2017
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: