아래와 같은 코드를 어떻게 개선할까?
Scala
012345
logType.split(":")(0) match {
case "my-type" =>
doSomething()
case _ @unknownLogType =>
context.log.info(s"**** 처리할 수 없는 로그 형식 입니다 (logType: $unknownLogType)")
}
logType은 스칼라 표준 String이며 콜론(:) 구분자가 포함되어 있는 문자열이다. 따라서 : 으로 split하면 String[]
이 반환되며 길이는 어떻게 될지 아무도 모른다. 그런 상황에서 0번 인덱스를 접근하는 코드(logType.split(":")(0)
)는 과연 안전한 코드일까?
위 코드를 좀 더 안전하게 접근할 수 있는 방식이 있다. 바로 아래와 같이 패턴 매칭을 사용하면 된다.
Scala
012345
logType.split(":") match {
case Array("my-type", _) =>
doSomething()
case _ @unknownLogType =>
context.log.info(s"**** 처리할 수 없는 로그 형식 입니다 (logType: $unknownLogType)")
}