Classes and Objects
Singleton Objects
Call a method on a single shared object.
singleton-object
An object defines one shared instance. It is useful for constants and stateless helpers.
Singleton Objects
SingletonObject.scala
Replay: real traced execution (multi-file project)
object FeeRules {
val fee = 2
def addFee(amount: Int): Int = {
amount + fee
}
}
object Main {
def main(args: Array[String]): Unit = {
val amount = 10
val total = FeeRules.addFee(amount)
println("amount=" + amount)
println("total=" + total)
}
}
object FeeRules {
val fee = 2
def addFee(amount: Int): Int = {
amount + fee
}
}
object Main {
def main(args: Array[String]): Unit = {
val amount = 4
val total = FeeRules.addFee(amount)
println("amount=" + amount)
println("total=" + total)
}
}
object FeeRules {
val fee = 2
def addFee(amount: Int): Int = {
amount + fee
}
}
object Main {
def main(args: Array[String]): Unit = {
val amount = 20
val total = FeeRules.addFee(amount)
println("amount=" + amount)
println("total=" + total)
}
}
amount ← 10
9object Main {10 def main(args: Array[String]): Unit = {11 val amount→ 10 = 10 //@amount=4, 2012 val total = FeeRules.addFee(amount10)1314 println("amount=" + amount)def addFee(amount: Int): Int =
4 def addFee(amount10: Int): Int = {5 amount10 + fee26 }7}total ← 12
11 val amount = 10 //@amount=4, 2012 val total→ 12 = FeeRules.addFee(amount10)1314 println("amount=" + amount10)15 println("total=" + total12)16 }17}outputamount=10 total=12
amount ← 4
9object Main {10 def main(args: Array[String]): Unit = {11 val amount→ 4 = 412 val total = FeeRules.addFee(amount4)1314 println("amount=" + amount)def addFee(amount: Int): Int =
4 def addFee(amount4: Int): Int = {5 amount4 + fee26 }7}total ← 6
11 val amount = 412 val total→ 6 = FeeRules.addFee(amount4)1314 println("amount=" + amount4)15 println("total=" + total6)16 }17}outputamount=4 total=6
amount ← 20
9object Main {10 def main(args: Array[String]): Unit = {11 val amount→ 20 = 2012 val total = FeeRules.addFee(amount20)1314 println("amount=" + amount)def addFee(amount: Int): Int =
4 def addFee(amount20: Int): Int = {5 amount20 + fee26 }7}total ← 22
11 val amount = 2012 val total→ 22 = FeeRules.addFee(amount20)1314 println("amount=" + amount20)15 println("total=" + total22)16 }17}outputamount=20 total=22