Part3 메소드와 함수) 메소드 정의

b4failrise ㅣ 2019. 2. 22. 16:42

스칼라에서 메소드는 다양한 형태로 정의할 수 있습니다.
우선 리턴 값이 있는 메소드는 메소드를 정의하는 블록 { }전에 =을 적어주어야 합니다.
그리고 리턴 키워드는 옵션입니다. 적어주지 않으면 리턴 타입은 리턴 값에 의해 결정됩니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
object LearnScala {
    // ① 일반적인 메소드
    def add(x:Int, y:Int):Int = {
        return x + y        
    }
    
    // ② return을 생략한 메소드
    def addWithoutReturn(x:Int, y:Int) = { // x + y는 int이므로 return타입은 Int로 결정됩니다.
        x + y // return을 적어주지 않아도 마지막 값이 return값입니다.
    }
    
    // ③ 메소드가 한 줄일 경우 중괄호{}를 생략해도 됩니다.
    def addWithoutBlock(x:Int, y:Int) = x + y
    
    def abs(x:Int) = x.abs
    def Max(x:Int, y:Int):Int = {
        x.max(y)
    }
    def main(args: Array[String]): Unit = {
        println(s"① ${add(1,2)}")
        println(s"② ${addWithoutReturn(1,2)}")
        println(s"③ ${addWithoutBlock(1,2)}")      
        println(s"④ ${abs(-3)}")
        println(s"⑤ ${Max(-1,5)}")
    }
}
cs


출력 ① 3
② 3
③ 3
④ 3
⑤ 5