복붙노트

[SCALA] 어떻게 튜플에 배열을 변환하는?

SCALA

어떻게 튜플에 배열을 변환하는?

나는 포함하는 자바 JPA에서 배열 [모든]이 (이 경우 두하지만, 어떤 소수의 고려) 다른 형식의 것들. 내가 대신 튜플 이러한를 표현하고 싶습니다.

좀 신속하고 더러운 변환 코드를 가지고 있고, 그것을 개선 아마도 더 일반적인 될 수 있는지 궁금.

val pair = query.getSingleOrNone // returns Option[Any] (actually a Java array)
pair collect { case array: Array[Any] =>
  (array(0).asInstanceOf[MyClass1], array(1).asInstanceOf[MyClass2]) }

해결법

  1. ==============================

    1.이것은 어떤가요?

    이것은 어떤가요?

    val pair = query.getSingleOrNone
    pair collect { case Array(x: MyClass1, y: MyClass2, _*) => (x,y) }
    // result would be Option[(MyClass1, MyClass2)]
    
  2. ==============================

    2.사용 맵 {케이스 어레이 (F1, F2) => (F1, F2)}.

    사용 맵 {케이스 어레이 (F1, F2) => (F1, F2)}.

    다음은 그 예이다 :

    Array( "CA:California", "WA:Washington", "OR:Oregon").
      map(s => s.split(":")).
      map { case Array(f1,f2) => (f1,f2)}
    
  3. ==============================

    3.내 솔루션은 다음과 같다 :

    내 솔루션은 다음과 같다 :

    val loginValues = line.split(",")  // return an Array
    
    val (ip, date, action, username) = (loginValues(0), loginValues(1).toLong, loginValues(2), loginValues(3))
    
  4. from https://stackoverflow.com/questions/12585549/how-to-convert-an-array-to-a-tuple by cc-by-sa and MIT license