스칼라 언어 기초2

스칼라 리스트

          스칼라의 리스트는 함수 스타일 프로그래밍을 위해 설계된 클래스라고 한다.
          
          스칼라 리스트 합치기 ( ::: Method 사용. )
           ex) val a = List(1,2)
                val b = List(3,4)
                val c = a ::: b
                c -> List(1,2,3,4)

          스칼라 리스트에 붙이기 ( :: Method 사용. )
           ex) val a = List(2,3)
                val b = 1 :: a
                b -> List(1,2,3)
          ※ ' +: ' 라는 추가 메소드가 있다고 하는데 이것을 추천하지는 않는 다고 한다.
             리스트의 길이에 비례한 시간이 걸린다고 한다. :: 는 O(c)시간이 걸린단다.

스칼라 튜플

          리스트와 같이 변경 불가. 그러나 각기 다른 타입의 원소를 넣을 수 있다.(Max 22개)
          22개 쓸 빠에야 걍 안쓰지... 작은거용으로 쓴다고 한다.
          자바에서는 여러값을 리턴하려면 자바 빈을 만들어야 하는데 튜플로 해결 가능함.
          튜플의 각 원소에 접근하려면 '.'과 '_' 다음에 1부터 시작하는 인덱스를 넣어!
          ex) val pair = ( 19, "성인인증")
               print(pair._1) -> 19  
               print(pair._2) -> 성인인증
         ★ 0이 아니라 1이다.

스칼라 집합

          변경 불가능한 집합(Call by Val) 변경 가능한 집합(Call by Ref)이 있다고 한다.
          
          변경 불가능한 집합(Default)
          ex) var com = Set("Samsung", "LG")
               com += "HP"
               // 새로운 집합이 재할당 된다고 함.

          변경 가능한 집합
          ex) import scala.collection.mutable.Set // 안하면 기본껄로
              val exampleSet = Set("생수 : 삼다수", "주스 : 델몬트")
              exampleSet += "커피 : 맥심"
              // 재할당이 아닌 자기 자신에게 추가 된다고 한다. Val로 선언.

스칼라 맵

          맵도 변경 가능한 맵과 변경 불가능한 맵이 있다고 한다.
          
          변경 가능한 맵
          ex) import scala.collection.mutable.Map
              val phoneNum = Map[Int, String]()
              phoneNum += ( 119 -> "소방서")
              phoneNum += ( 112 -> "경찰서")
              phoneNum += ( 114 -> "모르면")
              ※ 맵은 순서가 없다고 한다.

          변경 불가능한 맵 - 마찬가지로 Default
          ex) 귀찮음. 걍 상상해봐.
          
              

          

댓글

이 블로그의 인기 게시물

실내공간 표준안 IndoorGML의 개념 및 활용(이기준, 이지영)('13.06.24 심사완료) 정리.

플랫폼과 에코시스템