๊ตฌ์กฐ์ฒด์ ํด๋์ค (Structures and Classes)
๊ณตํต์
- ๊ฐ์ ์ ์ฅํ ํ๋กํผํฐ๋ฅผ ์ ์ธํ ์ ์๋ค.
- ํจ์์ ๊ธฐ๋ฅ์ ํ๋ ๋ฉ์๋๋ฅผ ์ ์ธ ํ ์ ์๋ค.
- ๋ด๋ถ ๊ฐ์. ์ ์ฌ์ฉํ์ฌ ์ ๊ทผํ ์ ์๋ค.
- ์์ฑ์๋ฅผ ์ฌ์ฉํด ์ด๊ธฐ ์ํ๋ฅผ ์ค์ ํ ์ ์๋ค.
- extension์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ค.
- Protocol์ ์ฑํํ์ฌ ๊ธฐ๋ฅ์ ์ค์ ํ ์ ์๋ค.
Class (ํด๋์ค)
class VideoMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
let tenEighty = VideoMode()
let alsoTenEighty = tenEighty
if tenEighty === alsoTenEighty {
print("tenEighty and alsoTenEighty refer to the same VideoMode instance.")
}
- ์ฐธ์กฐ ํ์
- ARC๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌ
- ์์์ด ๊ฐ๋ฅ
- deinit์ ์ฌ์ฉํ์ฌ ํด๋์ค ์ธ์คํด์ค์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ ํ ์ ์๋ค.
- ๋์ผ ์ธ์คํด์ค (Identical to) (===) & ๋์ผํ์ง ์์ ์ธ์คํด์ค (Not identical to) (!==)
Struct (๊ตฌ์กฐ์ฒด)
struct Resolution {
var width = 0
var height = 0
}
let a = Resolution(width: 640, height: 480)
let b = a
- ๊ฐ ํ์
- ๊ฐ์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๋ณ์์ ํ ๋นํ ๋ค ๊ฐ์ ๋ณ๊ฒฝ์ํค๋๋ผ๋ ๋ค๋ฅธ ๋ณ์์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. (๊ฐ ์์ฒด๋ฅผ ๋ณต์ฌ)
- ์๋์ ์ผ๋ก ์์ฑ๋ memberwise intializer ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
'Swift Language Guide' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Language Guide] ARC (0) | 2023.09.07 |
---|---|
[Swift Language Guide] ํ๋กํ ์ฝ (Protocols) (0) | 2023.08.01 |
[Swift Language Guide] ์ด๊ฑฐํ (Enumerations) (0) | 2023.06.05 |
[Swift Language Guide] ํด๋ก์ (Closures) (0) | 2023.06.05 |
[Swift Language Guide] ํจ์(Functions) (0) | 2023.05.24 |