scalac 명령 줄 인수 -Ywarn-value-discard
을 내 빌드에 추가했습니다. 이는 코드에서 방금 발견 한 미묘한 버그가 있었기 때문입니다. 그러나 이제는 버그가 아닌 의도적 인 폐기에 관한 "폐기 된 비 단위 값"에 대한 경고가 표시됩니다. 어떻게 이러한 경고를 억제합니까?"폐기 된 비 - 단위 값"경고를 표시하지 않음
25
A
답변
34
명백히 단위 (즉, ()
)를 반환하여이 경고를 표시하지 않습니다. 즉,
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1()
() // Explicitly return unit
}
8
이 this answer에 따르면, 당신은 또한 구문 val _
을 사용할 수 있습니다
def method2(): Unit = {
val _ = method1()
}
을하지만 여부를이 이상 몇 가지 논쟁이있다 :
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1() // Returns "Bye", whihc is implicitly discarded
}
로 : 예으로이 차례 또는 @ Régis의 대답이 선호되는 스타일입니다.
'method2'에서'method1'을 (를) 호출 할 때 _non-Unit value_을 (를) 버리지 마십시오? – botchniaque
첫 번째 스 니펫은 경고를 트리거하는 경우 ('-Ywarn-value-discard'가 활성화 된 경우)를 나타내므로 실제로이 경우 비 단위 값 ('method1'의 반환 값) 'method2'에서'method1'을 호출 할 때 폐기됩니다. 두 번째 스 니펫은 명시 적으로 "unit"(즉'()')을 반환하여 경고를 제거합니다. –