scala-基础

1.不带参数且不改变当前对象的Scala方法通常不使用圆括号,比如:"Hello".distinct
2.Scala没有提供++和--操作符,需要使用+=1 或者 -=1
3.在Scala中,_字符是通配符,类似于Java中的*,比如:import scala.math._,使用scala开头的包时,可以省略scala前缀,
例如:import math._等同于import scala.math._,而math.sqrt(-2)等同于scala.math.sqrt(-2)
4.一个类对应有一个伴生对象,其方法就跟Java中的静态方法一样

5.scala不刻意区分基本类型与引用类型,公共超类是Any,Unit类似于Java与C++中的Void,用圆括号()表示,比如,因为scala中每个表达式都应该有某种值,不带else的if语句等同于:

if(x > 0) 1 else ()

6.可以用:a + b 作为以下代码的简写:a.方法(b),比如:1.to(10) 可以写成;1 to 10;a+b可以写成a.+(b)

7.val定义一个常量,var声明值可变的变量
8."Hello"(4)是如下语句的简写:"Hello".apply(4),可以把"Hello"(4)这种用法当做是()操作符的重载形式,它背后

实现的原理是一个名为apply的方法

9.非递归函数不需要指定返回类型,Scala编译器可以通过=符号右侧的表达式类型推断出返回类型,对于递归函数必须指定返回类型,

变长参数:

def sum(args: Int*)={

var result = 0

for(arg <-  args) result += arg

result

}

可以使用任意多的参数来调用该函数,val s = sum(1,2,3,4,5,6,7),如下的写法不对:

val s = sum(1 to 7)

如果sum函数被调用时传入的是单个参数,那么该参数必须是单个整数,而不是一个整数区间,解决这个问题的办法是告诉编译器你希望这个参数被当做参数序列处理,追加上:_*,就像这样:

val s = sum(1 to 7: _*)

不返回值的函数叫过程,包含函数体的花括号前面没有=号


(以上主要是《快学scala》的读书笔记,记录一下加强记忆)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值