ꡬ쑰체λ
- μλ‘μ΄ λ°μ΄ν° νμ μ μ μ
- ꡬ쑰체 λ΄λΆμ κ°μ μ μ₯νκΈ° μν΄ νλ‘νΌν°λ₯Ό μ μ
- ꡬ쑰체 λ΄λΆμμ κΈ°λ₯ μ€νμ μν΄ λ©μλλ₯Ό μ μ
- κ° νμ : κ΅¬μ‘°μ²΄λ‘ μ μν νμ μ κ°μ΄ μ λ¬λ λλ ν΄λΉ κ°μ΄ 볡μ¬λμ΄ μ λ¬λλ€
- μ΄λμ λΌμ΄μ μ μ κ°λ₯
- μμ λΆκ°λ₯, νμ μΊμ€ν λΆκ°λ₯, λμ΄λμ λΌμ΄μ λΆκ°λ₯
ꡬ쑰체λ₯Ό μ¬μ©νλ κ²½μ°
- μ°κ΄λ κ°λ¨ν κ°μ μ§ν©μ μΊ‘μννλ κ²μ΄ λͺ©μ μΌ λ
- μΊ‘μνν κ°μ μ°Έμ‘°νλ κ²λ³΄λ€ 볡μ¬νλ κ²μ΄ ν©λΉν λ
- ꡬ쑰체μ μ μ₯λ νλ‘νΌν°κ° κ° νμ μ΄κ³ μ°Έμ‘°λ³΄λ€ λ³΅μ¬νλ κ²μ΄ ν©λΉν λ
- λ€λ₯Έ νμ μΌλ‘λΆν° μμλ°κ±°λ μμ μ μμν νμκ° μμ λ
ꡬ쑰체 λ¬Έλ²
ꡬ쑰체 νλ‘νΌν° λ° λ©μλ ꡬν
struct Sample {
// κ°λ³ νλ‘νΌν°(κ° λ³κ²½ κ°λ₯)
var mutableProperty: Int = 100
// λΆλ³ νλ‘νΌν°(κ° λ³κ²½ λΆκ°λ₯)
let immutableProperty: Int = 100
// νμ
νλ‘νΌν°(static ν€μλ μ¬μ© : νμ
μμ²΄κ° μ¬μ©νλ νλ‘νΌν°)
static var typeProperty: Int = 100
// μΈμ€ν΄μ€ λ©μλ(μΈμ€ν΄μ€κ° μ¬μ©νλ λ©μλ)
func instanceMethod() {
print("instance method")
}
// νμ
λ©μλ(static ν€μλ μ¬μ© : νμ
μμ²΄κ° μ¬μ©νλ λ©μλ)
static func typeMethod() {
print("type method")
}
}
ꡬ쑰체 μ¬μ©
// κ°λ³ μΈμ€ν΄μ€ μμ±
var mutable: Sample = Sample()
mutable.mutableProperty = 200
//mutable.immutableProperty = 200 // ERROR! : λΆλ³ νλ‘νΌν°λ μμ λΆκ°λ₯
// λΆλ³ μΈμ€ν΄μ€ μμ±
let immutable: Sample = Sample()
//immutable.mutableProperty = 200 // ERROR! : κ°λ³ νλ‘νΌν° μμ λΆκ°λ₯
//immutable.immutableProperty = 200 // ERROR! : λΆλ³ νλ‘νΌν° μμ λΆκ°λ₯
// νμ
νλ‘νΌν° λ° λ©μλ
Sample.typeProperty = 300
Sample.typeMethod() // type method
// μΈμ€ν΄μ€μμλ νμ
νλ‘νΌν°λ νμ
λ©μλ μ¬μ©λΆκ°λ₯
//mutable.typeProperty = 400 // ERROR!
//mutable.typeMethod() // ERROR!
ν΄λμ€λ
- μλ‘μ΄ λ°μ΄ν° νμ μ μ μ
- ꡬ쑰체 λ΄λΆμ κ°μ μ μ₯νκΈ° μν΄ νλ‘νΌν°λ₯Ό μ μ
- ꡬ쑰체 λ΄λΆμμ κΈ°λ₯ μ€νμ μν΄ λ©μλλ₯Ό μ μ
- μ°Έμ‘° νμ : κ΅¬μ‘°μ²΄λ‘ μ μν νμ μ κ°μ΄ μ λ¬λ λλ ν΄λΉ κ°μ μ°Έμ‘°μ£Όμκ° μ λ¬λλ€
- μ΄λμ λΌμ΄μ μ μ κ°λ₯
- λμ΄λμ
λΌμ΄μ μ μ κ°λ₯, μμ κ°λ₯, ν΄λμ€ μΈμ€ν°μ€μ λν΄ νμ
μΊμ€ν
κ°λ₯
- λ€μ€μμ λΆκ°λ₯
ν΄λμ€ λ¬Έλ²
class Sample {
// κ°λ³ νλ‘νΌν°
var mutableProperty: Int = 100
// λΆλ³ νλ‘νΌν°
let immutableProperty: Int = 100
// νμ
νλ‘νΌν°
static var typeProperty: Int = 100
// μΈμ€ν΄μ€ λ©μλ
func instanceMethod() {
print("instance method")
}
// νμ
λ©μλ 1
// μμμ μ¬μ μ λΆκ° νμ
λ©μλ - static ν€μλ μ¬μ©
static func typeMethod() {
print("type method - static")
}
// νμ
λ©μλ 2
// μμμ μ¬μ μ κ°λ₯ νμ
λ©μλ - class ν€μλ μ¬μ©
class func classMethod() {
print("type method - class")
}
}
ν΄λμ€ μ¬μ©
// μΈμ€ν΄μ€ μμ± - μ°Έμ‘°μ 보 μμ κ°λ₯
var mutableReference: Sample = Sample()
mutableReference.mutableProperty = 200
//mutableReference.immutableProperty = 200 // ERROR : λΆλ³ νλ‘νΌν° μμ λΆκ°λ₯
// μΈμ€ν΄μ€ μμ± - μ°Έμ‘°μ 보 μμ λΆκ°
let immutableReference: Sample = Sample()
//immutableReference = mutableReference // ERROR : "μΈμ€ν΄μ€μ μ°Έμ‘°μ 보" λ³κ²½ λΆκ°λ₯
immutableReference.mutableProperty = 200 // ν΄λμ€μ μΈμ€ν΄μ€λ μ°Έμ‘° νμ
μ΄λ―λ‘ letμΌλ‘ μ μΈλμλλΌλ μΈμ€ν΄μ€ "νλ‘νΌν°μ κ°"μ λ³κ²½κ°λ₯
//immutableReference.immutableProperty = 200 // ERROR : μ°Έμ‘° νμ
μ΄λΌλ λΆλ³ μΈμ€ν΄μ€μ λΆλ³ νλ‘νΌν° κ° λ³κ²½ λΆκ°λ₯
// νμ
νλ‘νΌν° λ° λ©μλ
Sample.typeProperty = 300
Sample.typeMethod() // type method
// μΈμ€ν΄μ€μμλ νμ
νλ‘νΌν°λ νμ
λ©μλ μ¬μ© λΆκ°λ₯
//mutableReference.typeProperty = 400 // ERROR!
//mutableReference.typeMethod() // ERROR!
'iOS π > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Switf07 - ꡬ쑰체 vs ν΄λμ€ vs μ΄κ±°ν (0) | 2021.02.01 |
---|---|
Swift-06 μ΄κ±°ν (0) | 2021.02.01 |
Swfit-04 Optional (0) | 2021.01.26 |
Swift-03 ν¨μ (0) | 2021.01.26 |
Swift-02 κΈ°λ³Έ λ°μ΄ν°νμ (0) | 2021.01.26 |