2
값이 Seq[Array[Int]]
이고 하나만 Array[Int]
으로 끝내고 싶습니다. 나는 foldLeft 작동 것이라고 생각하지만, 의외로 그렇지 않습니다 : 나는이 작업을 수행 할 수 있기 때문에배열의 배열을 스칼라로 병합하는 방법
scala> val arr1 = Array(1,2,3)
arr1: Array[Int] = Array(1, 2, 3)
scala> val arr2 = Array(4,5,6)
arr2: Array[Int] = Array(4, 5, 6)
scala> val seq = Seq(arr1, arr1)
seq: Seq[Array[Int]] = List(Array(1, 2, 3), Array(1, 2, 3))
scala> seq.foldLeft (Array.empty)((x,y) => x ++ y)
<console>:17: error: value ++ is not a member of Array[Nothing]
seq.foldLeft (Array.empty)((x,y) => x ++ y)
^
은 그 오류가 있지만 전체 진실처럼 보이지 않는다 :
이scala> Array.empty
res22: Array[Nothing] = Array()
scala> Array.empty ++ arr1 ++ arr2
res23: Array[Int] = Array(1, 2, 3, 4, 5, 6)
무엇을 주는가?
설명해 주셔서 감사합니다. 나는 여전히 스칼라의 형식 유추에 익숙해 져있다. 하지만 당신 말이 맞아요. 'seq.flatten.toArray'가 더 좋았습니다. – doub1ejack