Section4: Swift Programming Basics - Collections, Constants & Variables
[Code ๊ท์น]
WHO.WHAT = VALUE
CamelCase
[๋์ ์๋ฆฌ]
Outlet ์ storyboard <- code // IBOutlet allows me to reference a UI element
Action์ storyboard -> code
[String Interpolation]
print("Text \(2+3) Text")
[Swift Cheat Sheet] - ๋ฌธ์ ์ ์ญ์
let: ์์
var: ๋ณ์
ํจ์ ํธ์ถ์ aFunction(input: 1) ์ด๋ ๊ฒ ๋ถ๋ฅด๋ ๊ฒ. input๊ฐ์ 1๋ฃ์ด ~
* ๋๋ค ์ ์์ฑ ๋ฐฉ๋ฒ
: Int.random(in: lower...upper) or array.randomElement() or array.shuffle()
Int ๋ง๊ณ ๋ค๋ฅธ ํ์ random ์๋ฅผ ์์ฑํ ๋ ์์ ํ์ ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค.
Int.random(in: lower..<upper)
Float.random(in: lower...upper)
Bool.random()
* ์์์ n์๋ฆฌ์์ ์๋ฅด๊ธฐ
1) ๋ฐ์ฌ๋ฆผ ํจ์: round()
ex) round(12.123456) // 12.12347
// ๋ฐ์ฌ๋ฆผํด์ ์์์ 5์๋ฆฌ๊น์ง ๋ณด์ฌ์ค.
2) String format ์ด์ฉ
ex) String(format: "%.2f", 145.332) // 145.33
// ์์์ 2์๋ฆฌ๊น์ง ๋ณด์ฌ์ค.
3) Int ํ์ผ๋ก ๋ฐ๊พธ๊ธฐ
ex) Int(123.2122) // 123
* switch ๋ฌธ case ์์ ์กฐ๊ฑด์ ๋ฒ์๋ก ์ค ์๋ ์๋ค
a...b // closed range
a..<b // half open range
...b // one sided range
* Dictionary ๋ ์์๊ฐ ์๋ค. ๋ฐ๋ผ์ [0].key, [0].value ์ด๋ฐ์์ผ๋ก ์ ๊ทผํ ์ ์๋ค.
* Optionals ! ? ์ ๋ป
?: null ๊ฐ์ ํ์ฉํ๋ ๋ณ์๋ผ๋ ๋ป.
!: null ๊ฐ์ด ์๋ค๊ณ ํ์ ํ๋ค๋ ๋ป.
nil: null์ swift ํํ
//var playerU1Username: String = nil
var playerU1Username: String? = nil
player1Username = "jackbauerisawesome"
print(player1Username)
* Struct ์์ ์ฝ๋
init ํจ์๊ฐ ์ด๊ธฐํ ํจ์๋ค. ์์ฑ์ ๊ฐ์.
Struct ํจ์ ๋ด์ ์ธ์ ์ด๋ฆ์ Struct ์์ฑ ์ด๋ฆ๊ณผ ๊ฐ๊ฒ ํ๊ณ ์ถ๋ค๋ฉด Struct ์์ฑ์ ์ ๊ทผํ ๋ self ํค์๋๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
struct Town{
let name: String
var citizens: [String]
var resources: [String: Int]
init(name: String, citizens: [String], resources: [String: Int]){
self.name = name
self.citizens = citizens
self.resources = resources
}
func fortify(){
print("Defences increased!")
}
}
var anotherTown = Town(name: "Nameless Island", citizens: ["Tom Hanks"], resources: ["Coconuts": 100])
anotherTown.citizens.append("Matilda")
var ghostTown = Town(name: "Ghosty McGhostface", citizens: [], resources: ["Tunbleweed": 1])
* return ํจ์ ์์ ์ฝ๋
return ํจ์๋ ๊ธฐ๋ณธ ํจ์์ return ํ์ดํ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
func getMilk (money: Int) -> Int{
let change = money - 2
return change
}
* ์ํ ํจ์
์ ๊ณฑ: pow(3, 2) // 9
์ ๊ณฑ๊ทผ: sqrt(9) // 3