반응형
클래스
class Greeter(prefix: String, suffix: String){
def greet(name: String): Unit =
println(prefix + name + suffix)
}
val greeter = new Greeter("Hello, ", "!")
greeter.greet("Scala developer")
# Hello, Scala developer!
케이스 클래스
case class Point(x: Int, y: Int)
# class 와 달리 new 키워드 없이 케이스 클래스를 인스턴스화 가능
val point = Point(1, 2)
val anotherPoint = Point(1, 2)
val yetAnotherPoint = Point(2, 2)
# 그리고 값으로 비교
if (point == anotherPoint){
println("same")
} else {
println("different")
}
# same
if (point == yetAnotherPoint){
println("same")
} else {
println("different")
}
# different
객체
객체는 자가 정의에 대한 단일 인스턴스다.
object 키워드로 객체를 정의
object IdFactory {
private var counter = 0
def create(): Int = {
counter += 1
counter # return
}
}
val newId: Int = IdFactory.create()
println(newId) # 1
val newerId: Int = IdFactory.create()
println(newerId) # 2
반응형
'Data > Data Engineering' 카테고리의 다른 글
[Scala] Scala 언어 기초공부 - 중첩for문 (0) | 2020.12.14 |
---|---|
[예제 따라하기] /usr/sbin/td-agent-gem 에러 (0) | 2020.10.05 |
[Scala] Scala 언어 기초공부(4) - 클래스 (0) | 2020.03.04 |
[Scala] Scala 언어 기초공부(3) - 변수 타입 (0) | 2020.03.03 |
[Scala] Scala 언어 기초공부(1) (0) | 2020.02.26 |