배열은 Array(element1, element2, ...)
와 같이 만들 수 있습니다.
스칼라의 배열은 자바의 배열에 대응하는 개념입니다. 예를 들어 자바에서 int[]
는 스칼라에서 Array[Int]
와 같습니다.
스칼라의 배열은 mutable입니다. 사이즈를 변경할 수 있다는 의미가 아니라 들어있는 값을 변경할 수 있다는 의미의 mutable입니다.
배열은 그냥 출력하면 배열의 내용을 출력해 주지 않습니다. 내용을 출력하려면 .mkString(",")
과 같은 메소드를 이용해야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | object LearnScala { // 배열의 내용을 출력하는 메소드 def printArray[K](array:Array[K]) = println(array.mkString("Array(" , ", " , ")")) def main(args: Array[String]): Unit = { // ① Array[Int] val array1 = Array(1, 2, 3) print("① ") printArray(array1) val sz = array1.size println(sz) for(i <- 0 until sz){ println(array1(i)) } // ② Array[Any] val array2 = Array("a", 2, true) print("② ") printArray(array2) // ③ 배열의 값을 읽고 쓰기 val itemAtIndex0 = array1(0) array1(0) = 4 print("③ ") printArray(array1) // ④ 배열을 붙일때는 ++연산자를 이용 // 앞에 붙일때는 +:, 뒤에 붙일때는 :+ 연산자 val concatenated = "앞에 붙이기" +: (array1 ++ array2) :+ "뒤에 붙이기" print("④ array1과 array2를 더하면: ") printArray(concatenated) // 값으로 index찾기 println(array2.indexOf("a")) // ⑤ 다른 값만 가져오기 val diffArray = Array(1,2,3,4).diff(Array(2,3)) print("⑤ Array(1,2,3,4).diff(Array(2,3))의 결과: ") printArray(diffArray) val personArray = Array(("솔라",1), ("문별",2), ("휘인",3)) // ⑥ Find 메소드를 이용해서 findByName이라는 메소드 생성 // Find는 조건에 맞는 값을 찾으면 검색을 중단 // getOrElse는 일치하는 값이 없을 경우 넘겨줄 기본 값 // getOrElse가 없을때 일치하는 값이 없으면 None def findByName(name:String) = personArray.find(_._1 == name).getOrElse(("화사",4)) val findSolar = findByName("솔라") // 값("솔라",1)을 찾아서 넘겨줌 val findSun = findByName("태양") // 값이 없으므로 getOrElse에 있는 값("화사",4)이 들어감 println(findSolar) println(findSun) } } | cs |
출력 〉 | ① Array(1, 2, 3) 3 1 2 3 ② Array(a, 2, true) ③ Array(4, 2, 3) ④ array1과 array2를 더하면: Array(앞에 붙이기, 4, 2, 3, a, 2, true, 뒤에 붙이기) 0 ⑤ Array(1,2,3,4).diff(Array(2,3))의 결과: Array(1, 4) (솔라,1) (화사,4) |
'Scala' 카테고리의 다른 글
[스크랩]함수형 프로그래밍이란 무엇인가? (0) | 2019.02.26 |
---|---|
Part6. Collection) List (0) | 2019.02.25 |
Part5 제어문) if문 (0) | 2019.02.23 |
Part5 제어문) 중첩 반복문 (0) | 2019.02.23 |
Part5 제어문) 반복문 (0) | 2019.02.23 |