스칼라 언어 기초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) 귀찮음. 걍 상상해봐.
댓글
댓글 쓰기