scala 2.11.8에서 테스트한 내용이다. 리턴 값이 이상하거나 명확한 리턴값이 없으면 warning이 발생한다.
아래 scala 코드는 Unit을 리턴하지만, 리턴값을 정한 케이스이다. 동작 안된다.
scala> def f():Unit = "this"
<console>:12: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
def f():Unit = "this"
^
f: ()Unit
scala> f()
아무것도 출력 안됨
아래 scala 코드는 암묵적인 Unit을 사용했고 =를 안썼지만, 역시 동일하게 동작이 되지 않는다.
scala> def h() { "this" }
<console>:12: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
def h() { "this" }
^
h: ()Unit
scala> h()
아무것도 출력 안됨
아래 scala 코드는 동작 된다. 묵시적으로 함수가 String을 리턴한다.
scala> def f() = "this"
f: ()String
scala> f()
res11: String = this
아래 scala 코드는 명시적으로 함수가 String을 리턴하는 코드라서 동작한다.
scala> def h():String = { "this" }
h: ()String
scala> h()
res13: String = this
'scala' 카테고리의 다른 글
[scala] 암시적 타입 변환(implicit type conversion) 예시 (0) | 2016.03.25 |
---|---|
[scala] 싱글톤 객체, 독립 객체, 동반 클래스 (0) | 2016.03.24 |
[Scala] List의 sort는 deprecated, sortWith, sortBy, sorted 활용 예시 (0) | 2016.03.22 |
[Scala] ImmutableList의 remove() (0) | 2016.03.22 |
scala + scalatra + gradle (0) | 2015.11.30 |