[SCALA] 어떻게 스칼라 I 패턴 일치 배열은 무엇입니까?
SCALA어떻게 스칼라 I 패턴 일치 배열은 무엇입니까?
다음과 같이 내 방법 정의는 본다
def processLine(tokens: Array[String]) = tokens match { // ...
내가 두 번째 문자열이 공백인지 여부를 알고 싶은 가정
case "" == tokens(1) => println("empty")
컴파일되지 않습니다. 어떻게이 일을 가야합니까?
해결법
-
==============================
1.두 번째 요소는 빈 문자열이 있는지 여부를 확인하기 위해 배열 패턴 일치 시키려면, 다음을 수행 할 수 있습니다 :
두 번째 요소는 빈 문자열이 있는지 여부를 확인하기 위해 배열 패턴 일치 시키려면, 다음을 수행 할 수 있습니다 :
def processLine(tokens: Array[String]) = tokens match { case Array(_, "", _*) => "second is empty" case _ => "default" }
_ * 것도 포함하지 않는 요소들의 임의의 개수 결합한다. 이것은 아마 더 잘 알려져리스트에 다음과 일치, 유사합니다 :
def processLine(tokens: List[String]) = tokens match { case _ :: "" :: _ => "second is empty" case _ => "default" }
-
==============================
2.패턴 매칭은 예를 들어 올바른 선택하지 않을 수 있습니다. 당신은 간단하게 할 수 있습니다 :
패턴 매칭은 예를 들어 올바른 선택하지 않을 수 있습니다. 당신은 간단하게 할 수 있습니다 :
if( tokens(1) == "" ) { println("empty") }
패턴 매칭과 같은 경우에 더 적합합니다 :
for( t <- tokens ) t match { case "" => println( "Empty" ) case s => println( "Value: " + s ) }
이는 인쇄 각 토큰에 대한 뭔가.
편집 : 당신이 빈 문자열 어떤 토큰이 존재하는지 확인하려는 경우, 당신은 또한 시도 할 수 있습니다 :
if( tokens.exists( _ == "" ) ) { println("Found empty token") }
-
==============================
3.어떤 추가 멋지다하면 같은 뭔가 _ * 일치 물건 별칭을 사용할 수 있다는 것입니다
어떤 추가 멋지다하면 같은 뭔가 _ * 일치 물건 별칭을 사용할 수 있다는 것입니다
val lines: List[String] = List("Alice Bob Carol", "Bob Carol", "Carol Diane Alice") lines foreach { line => line split "\\s+" match { case Array(userName, friends@_*) => { /* Process user and his friends */ } } }
-
==============================
4.case 문은 그런 식으로 작동하지 않습니다. 즉되어야합니다 :
case 문은 그런 식으로 작동하지 않습니다. 즉되어야합니다 :
case _ if "" == tokens(1) => println("empty")
from https://stackoverflow.com/questions/6647166/how-do-i-pattern-match-arrays-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 자바에서 스칼라를 사용하여 다음 매개 변수로 함수를 전달 (0) | 2019.11.12 |
---|---|
[SCALA] 어떻게 줄이기 위해 서열 [어느 [A, B]] 어느 [A, 서열 [B]에? (0) | 2019.11.12 |
[SCALA] 볼품를 사용하여 중첩 된지도에 중첩 된 경우 클래스를 변환 (0) | 2019.11.12 |
[SCALA] 일반적인 방법에서 원래 수집 유형을 반환 (0) | 2019.11.12 |
[SCALA] 어떻게 하나 개의 큰 PNG 파일에 여러 개의 PNG 파일을 결합? (0) | 2019.11.12 |