第一章 scala 基本语法

1.val 和var都是用来定义变量的,用val定义的变量是不可变的,初始化之后,值就固定下来。用var来定义的变量是可变的,修改多次也没关系。在scala中应该尽量优先使用val
for (i <- 1 to 3){
print(i + “,”)
}

i 是一个val ,每次循环都会产生一个新的val。这里的to 是一个方法,1 to 3 ,相当于 1.to(3)

更scala风格的方法是:
(1 to 3).foreach(i => print(i + “,”))
=> 是将左边的参数和右边的具体实现分开

scala的双重循环:
for (i <- 1 to 3; j <- 1 to 3) print((10 * i + j) + ” “)
// Prints 11 12 13 21 22 23 31 32 33

在循环体中,还可以嵌套处理语句
for (i <- 1 to 3; j <- 1 to 3 if i != j) print((10 * i + j) + ” “)
// Prints 12 13 21 23 31 32

for (i <- 1 to 3; from = 4 - i; j <- from to 3) print((10 * i + j) + ” “)
// Prints 13 22 23 31 32 33

2.Java 基本类型对应的Scala类
scala一切为对象:
val a = 20
建立了一个Scala的Int实例
scala的富封装类: RichInt,RichDouble,RichBoolean,它们可以在基本类型无法满足的时候,转换为相应的类型。

3.元组和多重赋值

元组是一个不变的对象序列,可以用逗号分开创建,下面是一个3个对象的元组
(“apple”,”blanana”,”orange”)元组是可以赋值给其他变量的。
4.字符串与多行原始字符串
scala的字符串就是java.lang.String,可以按照Java的方式使用字符串。Scala可以自动把String转换为scala.runtime.RichString
创建多行字符串”“” sdfsfsffds…….”“”

4.自适应的默认做法:
 支持脚本,无需将所有的代码都放到类里
 return是可选的。如果符合方法声明的返回类型,方法会自动返回最后求值得表达式
 分号可选
 类和方法默认是public
 优化异常
 优化javabean
 默认情况下,scala会导入 java.lang scala scala.pref(包含了类型,隐式转换,以及scala中的常用方法)
5.运算符重载

6.一些区别
 scala的赋值运算的结果是Unit, a = b =c 这样的语句在scala中是错误的。
 Java中,基本类型中 == 是比较值, 对象中 == 是比较对象是否指向同一个对象,对象比较值是否相等的时候要用equals方法。 而在scala中 ,无论类型如何,==都是比较值得大小,而如果想比较他们的引用,则需要用eq()方法
 分号是 可选的
 scala 实例方法里可以访问任何类实例的私有字段和方法,也可以限制为当前实例。
 scala中的protected
scala中被protected修饰的成员只对本类以及派生类可见。同一个包的其他类无法访问这些成员。而且派生类只可以访问本类内的protected成员。scala对派生类的保护更加严格
peckage automobile
class Vechile{
protected def checkEngine(){}
}
class Car extends Vechile{
def start(){ checkEngine() //OK}
def tow(car : Car){
car.checkEngine() //ERROR
}
def tow(vechile: Vechile){
vechile.CheckEngine() //ERROE
}
}

class GasStation{
def fillGas(vechile : Vechile)
vechile.checkEngine() //ERROR
}
}
 细粒度访问控制

 避免显示使用return

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值