์ฐธ๊ณ ์๋ฃ
Swift ๊ณต์ ๋ฌธ์๋ฅผ ํ๊ตญ์ด๋ก ๋ฒ์ญํ ์ฌ์ดํธ์ ๋๋ค.
๐ป ์ฐธ๊ณ ์๋ฃ์ ๋ชจ๋ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๊ฒ์ด ์๋๋ผ ์๋กญ๊ฒ ์๊ฒ ๋ ์ ํน์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๊ณผ ๋น๊ตํ์ ๋ ๋ค๋ฅธ ์ ๋ค์ ์์ฃผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋ํ, ์ฐธ๊ณ ์๋ฃ ์ด์ธ์๋ ์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํ ๋ถ๋ถ๋ ์ ๋ฆฌํ์ต๋๋ค.
ํ ๋น ์ฐ์ฐ์
let b = 10 // ์์
var a = 5 // ๋ณ์
a = b
* ํํ์ ์ด์ฉํด์ ์ฌ๋ฌ ๊ฐ์ ํ ๋ฒ์ ํ ๋นํ ์ ์๋ค.
let (a, b, c, d) = ("S", [1, 2, 3, 4], 12, "Hello")
* C์ธ์ด์ ๋ค๋ฅด๊ฒ ๊ฐ์ ๋ฐํํ์ง ์๋๋ค.
if x = y {
// ํ ๋น ์ฐ์ฐ์๊ฐ ๊ฐ์ ๋ฐํํ์ง ์๋ ์ด์ ๋ ๋๋ฑ๋น๊ต ์ฐ์ฐ์(==)๊ฐ ์ฐ์ฌ์ผ ํ ๊ณณ์ ํ ๋น ์ฐ์ฐ์๊ฐ ์ฐ์ด๋ ๊ฒ์
// ๋ง๊ธฐ ์ํด์๋ผ๊ณ ํ๋ค.
}
๋น๊ต ์ฐ์ฐ์
๋น๊ต์ ๊ฒฐ๊ณผ์ธ true ํน์ false๋ฅผ ๋ฐํํ๋ค.
๊ฐ์ฒด ๋น๊ต๋ฅผ ์ํ ์๋ณ ์ฐ์ฐ์ ===, !== ์ ํผ๋ํ ์ ์์ผ๋ ์ฃผ์ํ์
1 == 1 // true
2 != 1 // true
2 > 1 // true
1 < 2 // true
1 >= 1 // true
2 <= 1 // false
* ๊ฐ์ ํ์ ์ ๊ฐ์ ๊ฐ๋ ๋ ๊ฐ์ ํํ์ ๋น๊ตํ ์ ์๋ค. ํํ์ ๋น๊ต๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ๋ฐฉํฅ์ผ๋ก ์ด๋ค์ง๊ณ ํ ๋ฒ์ ํ ๊ฐ์ ๊ฐ๋ง ๋น๊ตํ๋ค.
(1, "zebra") < (2, "apple") // true, 1์ด 2๋ณด๋ค ์๊ณ ; zebra๊ฐ apple์ ๋น๊ตํ์ง ์๊ธฐ ๋๋ฌธ
(3, "apple") < (3, "bird") // true ์ผ์ชฝ 3์ด ์ค๋ฅธ์ชฝ 3๊ณผ ๊ฐ๊ณ ; apple์ bird๋ณด๋ค ์๊ธฐ ๋๋ฌธ
(4, "dog") == (4, "dog") // true ์ผ์ชฝ 4๋ ์ค๋ฅธ์ชฝ 4์ ๊ฐ๊ณ ์ผ์ชฝ dog๋ ์ค๋ฅธ์ชฝ dog์ ๊ฐ๊ธฐ ๋๋ฌธ
("blue", -1) < ("purple", 1) // ๋น๊ต๊ฐ๋ฅ, ๊ฒฐ๊ณผ : true
("blue", false) < ("purple", true) // ์๋ฌ, Boolean ๊ฐ์ < ์ฐ์ฐ์๋ก ๋น๊ตํ ์ ์๊ธฐ ๋๋ฌธ์
Swift ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ 7๊ฐ ์์ ๋ฏธ๋ง์ ๊ฐ๋ ํํ๋ง ๋น๊ตํ ์ ์๋ค. ๋ง์ฝ 7๊ฐ ํน์ ๊ทธ ์ด์์ ์์๋ฅผ ๊ฐ๋ ํํ์ ๋น๊ตํ๊ณ ์ถ์ผ๋ฉด ์ง์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
Nil ๋ณํฉ ์ฐ์ฐ์
nil ๋ณํฉ ์ฐ์ฐ์๋ a ?? b ํํ๋ฅผ ๊ฐ๋ ์ฐ์ฐ์์ด๋ค. ์ต์ ๋ a๋ฅผ ๋ฒ๊ฒจ์(unwraps) ๋ง์ฝ a๊ฐ nil ์ธ ๊ฒฝ์ฐ b๋ฅผ ๋ฐํํ๋ค.
์ด nil ๋ณํฉ ์ฐ์ฐ์๋ ๋ค์ ์ฝ๋์ ์ถ์ฝํ์ ๋๋ค.
a != nil ? a! : b
์ต์ ๋ a๊ฐ nil์ด ์๋๋ฉด a๋ฅผ unwrapํ ๊ฐ์ nil์ด๋ฉด b๋ฅผ ๋ฐํํ๋ผ๋ ์๋ฏธ์ด๋ค.
let defaultColorName = "red"
var userDefinedColorName: String? // ์ด ๊ฐ์ defaults ๊ฐ nil์
๋๋ค.
var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorNam์ด nil์ด๋ฏ๋ก colorNameToUse ๊ฐ์ defaultColorName์ธ "red"๊ฐ ์ค์ ๋ฉ๋๋ค.\
userDefinedColorName = "green"
colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName๊ฐ nil์ด ์๋๋ฏ๋ก colorNameToUse๋ "green"์ด ๋ฉ๋๋ค.
๋ฒ์ ์ฐ์ฐ์
๋ซํ ๋ฒ์ ์ฐ์ฐ์
a...b์ ํํ๋ก ๋ฒ์์ ์์๊ณผ ๋์ด ์๋ ์ฐ์ฐ์์ด๋ค. for-in loop์ ์์ฃผ ์ฌ์ฉ๋๋ค. ์ถ๊ฐ๋ก, Array๋ฅผ ์ด๊ธฐํํด์ค ๋์๋ ์ฌ์ฉ๋ ์ ์๋ค.
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
let array: [Int] = Array(1...5)
//[1, 2, 3, 4, 5]
๋ฐ ๋ซํ ๋ฒ์ ์ฐ์ฐ์
a..<b์ ํํ๋ก a๋ถํฐ b๋ณด๋ค ์์ ๋๊น์ง์ ๋ฒ์๋ฅผ ๊ฐ์ต๋๋ค. ์ฆ, a๋ถํฐ b-1๊น์ง ๊ฐ์ ๊ฐ๋๋ค. ๋ณดํต ๋ฐฐ์ด์ด (๋ฐฐ์ด์ ํฌ๊ธฐ - 1)์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ด ๋ฐ ๋ซํ ๋ฒ์ ์ฐ์ฐ์๋ ๋ฐฐ์ด์ ๋ค๋ฃจ๋๋ฐ ์ ์ฉํ๋ค.
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("Person \(i + 1) is called \(names[i])")
}
๋จ๋ฐฉํฅ ๋ฒ์ ์ฐ์ฐ์
a...ํน์...a์ ํํ๋ก ๋ฒ์์ ์์ ํน์ ๋๋ง ์ง์ ํด ์ฌ์ฉํ๋ ๋ฒ์ ์ฐ์ฐ์์ด๋ค. ์ง์ ํ ์์ ๊ฐ ํน์ ๋ ๊ฐ์ ๋ฒ์์ ํฌํจ๋๋ค. ๋ฐ ๋ซํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ์ค์ ๊ฐ์ด ๋ฒ์์ ํฌํจ๋์ง ์๊ฒ ํ ์๋ ์๋ค.
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names[2...] {
print(name)
}
// Brian
// Jack
for name in names[...2] {
print(name)
}
// Anna
// Alex
// Brian
for name in names[..<2] {
print(name)
}
// Anna
// Alex
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Extension (1) | 2024.10.29 |
---|---|
[Swift] Objective-C (1) | 2024.10.28 |
[Swift] - ์ฝ๋ ์ ํ์ (Collection Types) (0) | 2024.10.27 |
[Swift] - ๋ฌธ์์ด๊ณผ ๋ฌธ์ (Strings and Characters) (0) | 2024.10.25 |
[Swift] ๊ธฐ๋ณธ (The Basics) (0) | 2024.10.24 |
๋๊ธ