이것은 순전히 코딩 스타일 질문입니다.의미있는 값이 없음의 Option에 대한 관용구 구문
내가 호출하는 함수는 Option
을 반환하며, None
과 같으면 특정 작업을 수행하려고합니다.
예를 들어, 부팅 할 때 기본 사용자를 아직 만들지 않으려 고하고 있다고 가정 해 보겠습니다. 기본 함수와 일치하는 사용자를 찾는 함수를 호출하고 Option[User]
을 반환합니다.
반환 값이 None
인 경우 일부 사용자 작성 코드를 실행하고 싶습니다. 그렇지 않다면, 끝났어.
이 점에 대해 가장 관용적 인 스칼라 구문이 궁금합니다. 첫 번째 솔루션은 대부분의 기능처럼 보인다
def getUser(name: String): Option[User] = ...
getUser("admin") getOrElse createUser("admin", "ChangeThisNow!")
getUser("admin") match {
case None => createUser("admin", "ChangeThisNow!")
case _ =>
}
if(getUser("admin") == None) createUser("admin", "ChangeThisNow!")
,하지만 난 더 나은 사람이있을 수도 도움이되지만 느낄 수 - 아마도 내가 인정 부분적으로 적용 기능을 사용하여 : 내가 지금까지 가지고 것은 여전히 약간 흐릿 해.
분명히 getOrElse입니다. 결과 사용자와 실제로 무언가를 할 수 있습니다. –
'getOrElse'를 사용합니다. 어떤 이유로 조건문을 사용해야하는 경우'== None' 대신'.isEmpty'를 사용하십시오. –
나는 보통 이러한 질문을 codereview.stackexchange.com – JasonG