Scala学习笔记(二):object、伴生对象和基本类

时间:2023-03-10 07:23:41
Scala学习笔记(二):object、伴生对象和基本类

object

object 是只有一个实例的类。它的定义与Java中的class类似,如:

// 单例对象
object AppEntry {
def main(args: Array[String]): Unit = {
print("Hello World!")
}
}

其中有main方法,它与脚本运行方式不同,需要先编译(scalac),后运行,与java类似:

Scala学习笔记(二):object、伴生对象和基本类

App

运行object,除了使用main方法,还可以直接继承trait(类似于Java中的接口)--App:

object AppEntry1 extends App {
print("Hello World, by extends App!")
}

伴生对象

与类同名的对象称为伴生对象。相反,该类是对象的伴生类。伴生类或对象可以访问其伴随的私有成员。将伴生对象用于方法和值,这些方法和值不是特定于伴生类的实例。

import scala.math._

case class Circle(radius: Double) {

  import Circle._

  def area: Double = calculateArea(radius)
} object Circle extends App {
private def calculateArea(radius: Double): Double = Pi * pow(radius, 2.0) val circle1 = new Circle(5.0)
print(circle1.area)
}

基本类

object BasicType extends App{
//1、基本类型
val int = 1
val short: Short = 2
val byte: Byte = 3
val long = 3L
val double = 3.23
val float = 3.23F
val boolean = false
val char = 'c' //2、String类型
val string = "this is a string" //sequence of char
println(s"Hello, $string")
println(s"The answer is ${6 * 7}") println(raw"No\\\\escape!") // No\\\\escape!
println(s"Has\\\\escape!") // Has\\escape! println(f"${math.Pi}%.5f") //3.14159 val pi = "Pi"
println(f"$pi is approximately ${math.Pi}%.8f.") //3、scala中的操作符(operator)和方法(method)
//scala中的基本类型提供了很多的操作符(比如1 + 2中的+),这些操作符实际上是方法
1 + 2
1.+(2)
1.+(2L) //方法 + 的重载 //4、方法的调用与操作符
val s = "Hello, world!"
s.indexOf('o') //这里的indexOf是方法
s indexOf 'o' //这里的indexOf是操作符
s indexOf ('o', 5) //基本类型的部分操作符就是方法,在scala中,所有的方法都可以是操作符
//是方法还是操作符取决于你怎么用
//如果s.indexOf('o')这样用,那么indexOf是方法
//如果s indexOf 'o'这样用,那么indexOf是操作符 s.substring(1)
s substring (1,2) //prefix操作符
-2.0
(2.0).unary_- //等于-2.0
//postfix操作符
s toLowerCase //4、基本类型的其他的操作符
//4.1 数学运算 + - * / %
//4.2 关系运算 < > <= >= =
//4.3 逻辑运算 || && !
//4.4 位运算 & | ^ ~
}