arrays, dictionaries, sets and enums
let john = " John Lennon "
let paul = " Paul McCartney "
let george = " George Harrison "
let ringo = " RIngo Starr "
let beatles = [ john, paul, george, ringo]
beatles [ 1 ]
//Result
//--->
//"Paul McCartney"
순서에 무관함
각 element는 유일한 값이고, 중복될 경우에 하나만 표시됨
let colors = Set ( [ " red " , " green " , " blue " ] )
//Result
//--->
//{"red", "green", "blue"}
let colors2 = Set ( [ " red " , " green " , " blue " , " red " , " blue " ] )
//Result
//--->
//{"red", "blue", "green"}
하나의 value안에 여러개의 value를 담을 수 있는 자료형, Array와는 다름
item을 추가하거나 삭제할 수 없음
아이템의 type을 변경할 수 없음, 동일한 type만 사용할 수 있음
numeric position또는 이름으로 각 item에 접근할 수 있음.
var name = ( first: " Taylor " , last: " Swift " )
name. 0
name. first
let address = ( house: 555 , street: " Taylor Swift Avenue " , city: " Nashville " )
//Result
//--->
//(house 555, street "Taylor Swift Avenue", city "Nashville")
let set = Set ( [ " aardvark " , " astronaut " , " azalea " ] )
//Result
//--->
//{"astronaut", "azalea", "aardvark"}
let pythons = [ " Eric " , " Graham " , " John " , " Michael " , " Terry " , " Terry " ]
//Result
//--->
//["Eric", "Graham", "John", "Michael", "Terry", "Terry"]
Key와 Value를 갖는 Data type
순서가 없음
let heights = [ " Taylor Swift " : 1.78 , " Ed Sheeran " : 1.73 ]
heights [ " Taylor Swift " ]
Dictionary defaults values
let favoriteIceCream = [
" Paul " : " Chocolate " ,
" Sophie " : " Vanilla "
]
favoriteIceCream [ " Paul " ]
// "Chocolate"
favoriteIceCream [ " Charlotte " , default: " Unknown " ]
// "Unknown"
favoriteIceCream
// ["Sophie": "Vanilla", "Paul": "Chocolate"]
favoriteIceCream [ " Charlotte " ]
// nil
favoriteIceCream [ " Charlotte " , default: " 12 " ]
// "12"
Creating empty collections
var teams = [ String: String] ( )
teams [ " Paul " ] = " Red "
var results = [ Int] ( )
var words = Set < String > ( )
var numbers = Set < Int > ( )
var scores = Dictionary < String , Int > ( )
var results2 = Array < Int > ( )
enum으로 정의하고 각각 case에 맞게 표현
열거형은 관련 값 그룹을 쉽게 사용할 수 있도록 정의 하는 방법
let result3 = " failure "
let result4 = " failed "
let result5 = " fail "
enum Result {
case success
case failure
}
let result6 = Result . failure
열거 형은 간단한 값을 저장할뿐만 아니라 각 대소 문자에 연결된 값을 저장할 수도 있습니다. 이렇게하면 추가 정보를 열거 형에 첨부 할 수 있으므로 더 많은 미묘한 데이터를 나타낼 수 있습니다.
enum Activity {
case board
case running( destination: String )
case talking( topic: String )
case singing( volume: Int )
}
let taling = Activity . talking ( topic: " football " )
enum Planet : Int {
case mercury = 1
case venus
case earth
case mars
}
let earth = Planet ( rawValue: 2 )
Array, set, tuple, dictionary는 하나의 value에 한 그룹의 item 들을 저장할 수 있음
Array는 순서에 관련있음
Set은 순서에 관계 없이 저장됨
Tuple은 Size가 고정되어 있고, 이름이나 순서로 접근할 수 있음
Dictionary는 key값에 따라 저장 또는 값이 불려짐
Enum은 spelling 실수를 막기 위해 관련된 값끼리 그룹화해서 사용하는 자료형
정수 나 문자열에서 rawValue를 첨부 할 수 있도록 enum에 값을 첨부하거나 연결된 값을 추가하여 각 case에 대한 추가 정보를 저장할 수 있음.