[Swift] Array, Set, Tuple, Dictionary
Array
- ๋ฐฐ์ด ํ์
- ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ์ฅํ๊ณ , ์ค๋ณต์ ํ์ฉํ๋ค.
์ ์ธ ๋ฐฉ๋ฒ
let john = "John Lennon"
let paul = "Paul McCartney"
let george = "George Harrison"
let ringo = "Ringo Starr"
let beatles = [john, paul, george, ringo]
ํ์
๋ช
์๋ [Int]
, [String]
์ฒ๋ผ ํ๋ค
let numbers: [Int] = [0, 1, 2]
Set
-
๋ฐ์ดํฐ ์ ์ฅ ์์๊ฐ ์๊ณ , ์ค๋ณต์ด ํ์ฉ๋์ง ์๋๋ค.
-
๋จ์ํ exist ํ์ธ์ด๋ผ๋ฉด
Set
์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์(๋น ๋ฆ!)
์ ์ธ ๋ฐฉ๋ฒ
let colors = Set(["red", "green", "blue"])
ํ์ ๋ช ์
let numbers: Set = Set([0, 1, 2])
//or
let numbers: Set<Int> = Set([0, 1, 2])
Tuple
- Tuple์ ์์ดํ ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ (๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง)
- Tuple์ ์์ดํ ํ์ ์ ๋ณ๊ฒฝํ ์ ์์ (์์ฑํ๊ณ ๋๋ฉด ํญ์ ๋์ผํ ํ์ ์ ์ง)
- Tuple์ ์์ดํ ์ ์ ๊ทผํ ๋๋ index, ์์ดํ ์ด๋ฆ ๋ชจ๋ ๊ฐ๋ฅ (์กด์ฌํ์ง ์๋ index๋ ์ด๋ฆ ์ ๊ทผ์ ๋ถ๊ฐ๋ฅ)
์ ์ธ ๋ฐฉ๋ฒ
var name = (first: "Taylor", last: "Swift")
์ ๊ทผ ๋ฐฉ๋ฒ
name.0
//or
name.first
Arrays vs sets vs tuples
- Tuple: ๊ฐ ์์ดํ ์ด ๊ณ ์ ๋ ํฌ์ง์ ๋๋ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํ ๋
let address = (house: 555, street: "Taylor Swift Avenue", city: "Nashville")
- Set: ์ค๋ณต์ด ํ์ฉ๋์ง ์์์ผ ํ๊ณ , ํน์ ์์ดํ ์ด ํฌํจ๋๋์ง ๋น ๋ฅธ ํ์ธ์ด ํ์ํ ๋
let set = Set(["aardvark", "astronaut", "azalea"])
- Array: ์ค๋ณต์ด ํ์ฉ๋๊ณ , ์์ดํ ์ ์์๊ฐ ์ฃผ์ ๋ชฉ์ ์ผ ๋ (์ ์ค ๊ฐ์ฅ ํํ ์ฌ์ฉ๋๋ ํ์ )
let pythons = ["Eric", "Graham", "John", "Michael", "Terry", "Terry"]
Dictionaries
- integer position ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅ
let heights = [
"Taylor Swift": 1.78,
"Ed Sheeran": 1.73
]
:
์ ์ผ์ชฝ์ด ํค, ์ค๋ฅธ์ชฝ์ด ๊ฐ
๊ฐ์ ์ฝ์ ๋ [ ]
์ด์ฉ
heights["Taylor Swift"]
Note: ํ์
์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ ๋๋ [String: Double]
, [String: String]
์ฒ๋ผ ์ ์
Dictionary default values
์กด์ฌํ์ง ์๋ key์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ nil
์ ๋ฐํ
let favoriteIceCream = [
"Paul": "Chocolate",
"Sophie": "Vanilla"
]
favoriteIceCream["Paul"] // == "Chocolate"
favoriteIceCream["Charlotte"] // == nil
default value๋ฅผ ์ ์ํ ์๋ ์์
favoriteIceCream["Charlotte", default: "Unknown"] // == Unknown
Creating empty collections
Array, Set, Dictionary ๋ชจ๋ ๊ฐ์ ํ ๊ณณ์ ์ ์ฅํ๋ค๋ ์๋ฏธ๋ก collection์ด๋ผ๊ณ ๋ถ๋ฆ
empty collection ์์ฑ ๋ฐฉ๋ฒ
var teams = [String: String]() //empty dictionary
var results = [Int]() //empty array
Empty Set ์์ฑ ๋ฌธ๋ฒ์ ์กฐ๊ธ ๋ค๋ฆ
var words = Set<String>()
var numbers = Set<Int>()
Array, Dictionary๋ ๊ฐ์ ๋ฌธ๋ฒ์ผ๋ก ์์ฑ ๊ฐ๋ฅ
var scores = Dictionary<String, Int>()
var results = Array<Int>()
Enumerations
enum Result {
case success
case failure
}
let result4 = Result.failure
๊ฐ case๋ง๋ค ๊ด๋ จ๋ ๊ฐ์ ์ถ๊ฐ๋ก ์ ์ฅํ ์ ์์
enum Activity {
case bored
case running(destination: String)
case talking(topic: String)
case singing(volume: Int)
}
let talking = Activity.talking(topic: "football")
Enum Raw Value
Enum์ด ๊ฐ๋ ๋ฐ์ดํฐ์ ํ์ ์ง์ ํ ์ ์๊ณ , ๊ทธ ๊ฐ์ผ๋ก Enum์ case๋ฅผ ์ป์ด์ฌ ์ ์์
Int์ธ ๊ฒฝ์ฐ Swift๋ ์๋์ผ๋ก 0๋ถํฐ ๋ฒํธ๋ฅผ ๋งค๊น
enum Planet: Int {
case mercury
case venus
case earth
case mars
}
let earth = Planet(rawValue: 2) //return Planet.earth
๋๋ ํน์ ์ซ์๋ถํฐ ์์ํ๋๋ก ์ง์ ๊ฐ๋ฅ
enum Planet: Int {
case mercury = 1
case venus
case earth
case mars
}
๋ค๋ฅธ ํ์ ์์
enum Planet: String {
case mercury
case venus
case earth = "test"
case mars
}
let earth = Planet(rawValue: "test")
Comments