- public是scala的缺省访问级别
- 结果类型为 Unit 的方法,执行的目的就是它 的副作用,如果很简短可以省掉大括号和return,和def写在一行,比如:def add(b: Byte): Unit = sum += b(通常我们定义副作用为在方法外部某处改变状态或者执行 I/O 活动。比方说, 在 add 这个例子里,副作用就是 sum 被重新赋值了)
- 另一种方式是去掉结 果类型和等号,把方法体放在大括号里,如:def add(b: Byte) { sum += b },此时如果在{前面加上=,scala就会根据{}里的最后一条语句来推断类型
- 单例对象不只是静态方法的收容站。它同样是个第一类的对象
- 类和单例对象间的一个差别是,单例对象不带参数,而类可以
- 单例对象会在第一次被访问的时候初始化
- 伴生对象
- 与某个类共享同一个名称的单例对象被称作是这个类的伴生对象:companion object
- 必须在同一个源文件里定义类和它的伴生对象
- 孤立对象
- 不与伴生类共享名称的单例对象被称为孤立对象:standalone object
- 孤立对象用于把相关的功能方法收集在一起,或定义一个Scala应用的入口点
- 任何拥有合适签名的main方法的单例对象都可以用来作为程序的入口点
- scala隐式引用了包java.lang和scala的成员,和名为Predef的单例对象的成员
- 与java不同,scala文件里可以放任意类,不一定要与文件名相同的public类,推荐的风格是像在java里那样按照所包含的类名来命名文件,便于文件的查找
- scala的文件以定义结束,脚本文件以表达式结尾