Functions and Methods
Method Basics
Define a small method and call it from main.
method-basics
A method names reusable work. Calling the method runs its body and returns a value.
Method Basics
MethodBasics.scala
Replay: real traced execution (multi-file project)
object Main {
def double(value: Int): Int = {
value * 2
}
def main(args: Array[String]): Unit = {
val number = 4
val result = double(number)
println("number=" + number)
println("result=" + result)
}
}
object Main {
def double(value: Int): Int = {
value * 2
}
def main(args: Array[String]): Unit = {
val number = 2
val result = double(number)
println("number=" + number)
println("result=" + result)
}
}
object Main {
def double(value: Int): Int = {
value * 2
}
def main(args: Array[String]): Unit = {
val number = 7
val result = double(number)
println("number=" + number)
println("result=" + result)
}
}
number ← 4
6def main(args: Array[String]): Unit = {7 val number→ 4 = 4 //@number=2, 78 val result = double(number4)910 println("number=" + number)def double(value: Int): Int =
1object Main {2 def double(value4: Int): Int = {3 value4 * 24 }result ← 8
7 val number = 4 //@number=2, 78 val result→ 8 = double(number4)910 println("number=" + number4)11 println("result=" + result8)12 }13}outputnumber=4 result=8
number ← 2
6def main(args: Array[String]): Unit = {7 val number→ 2 = 28 val result = double(number2)910 println("number=" + number)def double(value: Int): Int =
1object Main {2 def double(value2: Int): Int = {3 value2 * 24 }result ← 4
7 val number = 28 val result→ 4 = double(number2)910 println("number=" + number2)11 println("result=" + result4)12 }13}outputnumber=2 result=4
number ← 7
6def main(args: Array[String]): Unit = {7 val number→ 7 = 78 val result = double(number7)910 println("number=" + number)def double(value: Int): Int =
1object Main {2 def double(value7: Int): Int = {3 value7 * 24 }result ← 14
7 val number = 78 val result→ 14 = double(number7)910 println("number=" + number7)11 println("result=" + result14)12 }13}outputnumber=7 result=14
Follow the Method
numberstarts as4.double(number)passes4into the method.- Inside
double,valueis4. - The method returns
value * 2, which is8. - The caller stores that value in
result. | number | method input | returned result | | --- | --- | --- | | 4 | 4 | 8 | | 2 | 2 | 4 | | 7 | 7 | 14 |
Exercise: MethodBasics.scala
Reproduce number=4 and result=8, then use the pinned number variants 2 and 7 to predict result=4 and result=14.