스칼라에서 요소의 배열 크기 찾기
이 기사에서는 배열에서 요소의 크기를 찾는 방법에 대해 설명합니다. 먼저 배열의 크기를 얻은 다음 해당 개념을 확장하여 배열 내부에 있는 요소의 크기를 가져오는 방법을 이해하겠습니다.
Scala의 length
및 size
연산자
length
연산자
통사론:
array_name.length
Scala의 length
연산자를 사용하여 Scala에서 배열의 길이를 계산할 수 있습니다. 배열의 요소 수를 반환합니다.
더 잘 이해하기 위해 예를 들어 보겠습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", "b", Array(1,2,3,4,5,6), "c")
println(myArr.length)
}
}
출력:
4
4개의 요소를 포함하고 하나의 요소는 배열인 myArr
배열을 선언했습니다. 그런 다음 length
연산자를 사용하여 배열의 길이를 가져왔습니다.
size
연산자
배열의 size
속성을 사용하여 크기를 얻을 수 있습니다. 배열에 포함된 요소의 수를 반환합니다.
배열의 length
속성과 매우 유사합니다.
통사론:
array_name.size
더 잘 이해하기 위해 예를 들어 보겠습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val myArr1 = Array(3, 2, 5, 7)
val fruits = Array("Apple", "Orange",Array("watermelon","tomato"))
val rate : Array[Double] = Array(4.6, 7.8, 9.5, 4.5)
println(myArr1.size)
println(fruits.size)
println(rate.size)
}
}
출력:
4
3
4
위의 코드에서는 일부 요소가 포함된 세 개의 배열을 선언했으며 size
연산자를 사용하여 각각의 크기를 가져왔습니다.
Scala에서 배열 내부 요소의 크기 가져오기
다른 요소의 배열을 생성할 때 java.io.Serializable
로 생성됩니다.
예시:
myArr = Array("a", "b" , Array(11,22,33), "c")
이제 myArr
의 두 번째 요소인 Array(11,22,33)
를 참조하면 해당 참조는 Serializable
이 되며 length
또는 size
가 없습니다. 그리고 그것들을 사용하려고 하면 오류가 발생합니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", "b", Array(11,22,33), "c")
println(myArr(2).size)
}
}
출력: 오류가 발생하는 것을 볼 수 있습니다.
error: value size is not a member of java.io.Serializable
println(myArr(2).size)
이 문제를 해결하려면 asInstanceOf
를 사용하여 배열의 두 번째 요소를 명시적으로 유형 변환해야 합니다.
예제 코드 1:
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", "b", Array(11,22,33), "c")
if (myArr(2).isInstanceOf[Array[Int]])
println(myArr(2).asInstanceOf[Array[Int]].size)
}
}
출력: myArr
배열의 두 번째 요소 크기를 알 수 있습니다.
3
위의 코드에서 if
조건을 사용하여 먼저 배열의 두 번째 요소의 유형과 인스턴스를 확인한 다음 asInstanceOf
를 사용하여 유형 변환한 다음 size
연산자를 사용하여 크기를 가져옵니다. .
예제 코드 2:
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", List("tony","stark","hulk","iron man"), "c")
if (myArr(1).isInstanceOf[List[String]])
println(myArr(1).asInstanceOf[List[String]].size)
}
}
출력:
4