π λ°μ΄ν° νμ μμ¬
μ€μννΈλ νμ μ κ΅μ₯ν λ―Όκ°νκ³ μ격νλ€.
μλ‘ λ€λ₯Έ λ°μ΄ν° νμ λΌλ¦¬μ λ°μ΄ν° κ΅νμ νμ μΊμ€ν (Type-Casting)μ κ±°μ³μΌ νλ€.
μ€μννΈμμ κ° νμ μ λ°μ΄ν° κ΅νμ μλ°ν λ§νλ©΄ νμ μΊμ€ν μ΄ μλ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μμ±νμ¬ ν λΉνλ κ²μ΄λ€.
π λ°μ΄ν° νμ μμ¬μ΄λ
μ€μννΈλ λ°μ΄ν° νμ μ μμ¬νκ³ μ¬μ©ν μ μλ μΈμ΄μ΄λ€.
μλ₯Ό λ€μ΄, Int νμ λ³μμ ν λΉνλ €λ κ°μ΄ Character νμ μ΄λ©΄ μ»΄νμΌ μ€λ₯κ° λ°μνλ€.
μ΄λ κ² μ€μννΈκ° μ»΄νμΌ μ νμ μ νμΈνλ κ²μ νμ νμΈ μ΄λΌκ³ νλ€.
π νμ μΆλ‘
μ€μννΈμμλ λ³μλ μμλ₯Ό μ μΈν λ νΉμ νμ μ λͺ μνμ§ μμλ
μ»΄νμΌλ¬κ° ν λΉλ κ°μ κΈ°μ€μΌλ‘ λ³μλ μμμ νμ μ κ²°μ νλ€.
// νμ
μ μ§μ νμ§ μμμΌλ νμ
μΆλ‘ μ ν΅νμ¬ nameμ String νμ
μΌλ‘ μ μΈλλ€.
var name = "Kwanhee"
// μμ νμ
μΆλ‘ μ μν΄ nameμ String νμ
μ λ³μλ‘ μ§μ λμκΈ° λλ¬Έμ
// μ μλ₯Ό ν λΉνλ €κ³ μλνλ©΄ μ€λ₯κ° λ°μνλ€.
name = 100 // μ€λ₯
π λ°μ΄ν° νμ κ³ κΈ
π νν
ννμ μ΄λ¦μ΄ λ°λ‘ μ§μ λμ΄ μμ§ μμ, νλ‘κ·Έλλ¨Έ λ§μλλ‘ λ§λλ νμ μ΄λ€.
'μ μ₯λ λ°μ΄ν°μ λ¬Άμ'μ΄λΌκ³ ν μ μλ€. ( CμΈμ΄μ μμ ꡬ쑰체μ ννμ κ°κΉκ³ , νμ΄μ¬μ ννκ³Ό μ μ¬νλ€ )
// String, Int, Double νμ
μ κ°λ νν
var person: (String, Int, Double) = ("yagom", 100, 182,5)
// μΈλ±μ€λ₯Ό ν΅ν΄μ κ°μ λΉΌμ¬ μ μλ€.
print("μ΄λ¦: \(person.0) λμ΄:\(person.1) μ μ₯:\(person.2)")
// μΈλ±μ€λ₯Ό ν΅ν΄μ κ°μ ν λΉ ν μ μλ€.
person.1=99
person.2=178.5
π 컬λ μ ν
π‘ λ°°μ΄
λ°°μ΄μ μ μΈκ³Ό μμ±
// λκ΄νΈλ₯Ό μ¬μ©νμ¬ λ°°μ΄μμ ννν©λλ€.
var names: Array<String> = ["yagom", "chulsoo", "younghee", "yagom"]
// μ μ μΈκ³Ό λμΌν νν. [String]μ Array<String>μ μΆμ½νν
var names: [String] = ["yagom", "chulsoo", "younghee", "yagom"]
var emptyArray: [Any] = [Any]() // Any λ°μ΄ν°λ₯Ό μμλ‘ κ°λ λΉ λ°°μ΄ μμ±
var emptyArray: [Any] = Array<Any>() // μ μ μΈκ³Ό μ νν κ°μ λμμ νλ μ½λ
// λ°°μ΄μ νμ
μ λͺ
μν΄μ€¬λ€λ©΄ []λ§μΌλ‘λ λΉ λ°°μ΄μ μμ±ν μ μλ€.
var emptyArray: [Any] = []
print(emptyArray.isEmpty) // true
print(names.count) // 4
맨 μ²μκ³Ό 맨 λ§μ§λ§ μμλ firstμ last νλ‘νΌν°λ₯Ό ν΅ν΄ κ°μ Έμ¬ μ μλ€.
firstIndex(of:) : ν΄λΉ μμμ μΈλ±μ€λ₯Ό μμλΌ μ μλ€. ( μ€λ³΅λ μμκ° μλ€λ©΄ μ μΌ λ¨Όμ λ°κ²¬λ μμμ μΈλ±μ€ )
append(_ : ) : 맨 λ€μ μμ μΆκ°
insert(_:at: ) : μ€κ°μ μμμ½μ
remove(_ :) : μμ μμ ( μμ λ ν λ°νλλ€ )
π‘ λμ λ리
λμ λ리λ μμλ€μ΄ μμμμ΄ <Key,Value> μμΌλ‘ ꡬμ±λλ 컬λ μ νμ μ΄λ€.
ν€λ μ€λ³΅λ μ μμΌλ―λ‘, ν€λ κ°μ λλ³νλ μ μΌν μλ³μ
π‘ μΈνΈ
μΈνΈλ κ°μ νμ μ λ°μ΄ν°λ₯Ό μμ μμ΄ νλμ λ¬ΆμμΌλ‘ μ μ₯νλ 컬λ μ νμ μ΄λ€.
- μΈνΈ λ΄μ κ°μ λͺ¨λ μ μΌν κ°, μ¦ μ€λ³΅λ κ°μ΄ μ‘΄μ¬νμ§ μλλ€.
- μμκ° μ€μνμ§ μκ±°λ, κ° μμκ° μ μΌν κ°μ΄μ΄μΌ νλ κ²½μ°μ μ¬μ©
- ν΄μ κ°λ₯ν κ°μ΄ λ€μ΄μμΌ νλ€.
Setν€μλμ νμ μ΄λ¦μ μ‘°ν©μΌλ‘ μ¨μ€λ€. λ°°μ΄κ³Ό λ§μ°¬κ°μ§λ‘ λκ΄νΈλ‘ κ°λ€μ λ¬Άμ΄ μΈνΈ νμ μμ νννλ€.
λ°°μ΄κ³Ό λ¬λ¦¬ Array<Int>λ₯Ό [Int]λ‘ μΆμ½ν μ μλκ² μλ€.
- let μ μΈ -> λ³κ²½ λΆκ°λ₯ν μΈνΈ
- var μ μΈ -> λ³κ²½ κ°λ₯ν μΈνΈ
μΈνΈμ μ μΈκ³Ό μμ±
var names: Set<String> = Set<String>() // λΉ μΈνΈ μμ±
var names: Set<String> = // λΉ μΈνΈ μμ±
// Arrayμ λ§μ°¬κ°μ§λ‘ λκ΄νΈλ₯Ό μ¬μ©νλ€.
var names: Set<String> = ["yagom", "chulsoo", "younghee", "yagom"]
// κ·Έλ κΈ° λλ¬Έμ νμ
μΆλ‘ μ μ¬μ©νκ² λλ©΄ μ»΄νμΌλ¬λ Setκ° μλ Arrayλ‘ νμ
μ μ§μ νλ€.
var numbers = [100, 200, 300]
print(type(of: numbers)) // Array<Int>
print(names.isEmpty) // false
print(names.count) // 3 -> ( μ€λ³΅λ κ°μ νμ©νμ§ μμ yagomμ 1κ° )
π μ΄κ±°ν
μ°κ΄λ νλͺ©λ€μ λ¬Άμ΄μ ννν μ μλ νμ μ΄λ€.
λ°°μ΄μ΄λ λμ λ리 κ°μ νμ κ³Ό λ€λ₯΄κ² μ μν΄μ€ νλͺ© κ° μΈμλ μΆκ°/μμ μ΄ λΆκ°λ₯νλ€.
- μ νλ μ νμ§λ₯Ό μ£Όκ³ μΆμ λ
- μ ν΄μ§ κ° μΈμλ μ λ ₯λ°κ³ μΆμ§ μμ λ
- μμλ μ λ ₯ κ°μ΄ νμ λμ΄ μμ λ
μμ
- 무μ ν΅μ λ°©μ : WiFi, λΈλ£¨ν¬μ€, LTE, 3
- νμ : μ΄λ±νμ, μ€νμ, κ³ λ±νμ, λνμ, λνμμ
- μ§μ : κ°μλ, κ²½κΈ°λ, κ²½μλ, μ λΌλ, μ μ£Όλ, μΆ©μ²λ
π‘ κΈ°λ³Έ μ΄κ±°ν
κΈ°λ³Έ μ΄κ±°νμ enum μ΄λΌλ ν€μλλ‘ μ μΈ
enum School{
case primary
case elementary
case middle
case high
case university
case graduate
}
enum School{
case primary, elementary, middle, high, university, graduate
}
// Scool μ΄κ±°ν λ³μμ μμ±μ μμ± λ° κ° λ³κ²½
var highestEducationLevel: School = School.university
// μ μ½λμ μ νν κ°μ νν
var highestEducationLevel: School = .university
// κ°μ νμ
μΈ School λ΄λΆμ νλͺ©μΌλ‘λ§ highestEducationLevelμ κ°μ λ³κ²½ν΄μ€ μ μλ€.
highestEducationLvel = . graduate
π‘ μμ κ°
μ΄κ±°νμ κ° νλͺ©μ μ체λ‘λ νλμ κ°μ΄μ§λ§ νλͺ©μ μμ(Raw Value)λ κ°μ§ μ μλ€.
μ¦, νΉμ νμ μΌλ‘ μ§μ λ κ°μ κ°μ§ μ μλ€λ κ²μ΄λ€.
νΉμ νμ μ κ°μ μμ κ°μΌλ‘ κ°μ§κ³ μΆλ€λ©΄ μ΄κ±°ν μ΄λ¦ μ€λ₯Έμͺ½μ νμ μ λͺ μν΄μ£Όλ©΄ λλ€.
λ μμκ°μ μ¬μ©νκ³ μΆλ€λ©΄ rawValueλΌλ νλ‘νΌν°λ₯Ό ν΅ν΄ κ°μ Έμ¬ μ μλ€.
enum School{
case primary = "μ μΉμ"
case elementary = "μ΄λ±νκ΅"
case middle = "μ€νκ΅"
case high = "κ³ λ±νκ΅"
case university = "λνκ΅"
case graduate = "λνμ"
}
let highestEducationLevel: School = School.university
print("μ μ μ΅μ’
νλ ₯μ \(highestEducationLevel.rawValue) μ‘Έμ
μ
λλ€.")
// μ μ μ΅μ’
νλ ₯μ λνκ΅ μ‘Έμ
μ
λλ€.
enum WeekDays: Character {
case mon="μ", tue="ν", wed="μ", thu="λͺ©", fri="κΈ", sat="ν ", sun="μΌ"
}
let today: WeekDays = WeekDays.fri
print("μ€λμ \(today.rawValue)μμΌ μ
λλ€.")
// μ€λμ κΈμμΌμ
λλ€.
π‘ μ°κ΄ κ°
μ€μννΈμ μ΄κ±°ν κ° νλͺ©μ΄ μ°κ΄ κ°μ κ°μ§κ² λλ©΄, κΈ°μ€ νλ‘κ·Έλλ° μΈμ΄μ 곡μ©μ²΄ ννλ₯Ό λΈ μλ μλ€.
π‘ νλͺ© μν
λλλ‘ μ΄κ±°νμ ν¬ν¨λ λͺ¨λ μΌμ΄μ€λ₯Ό μμμΌ ν λκ° μλ€.
κ·Έλ΄ λ μ΄κ±°νμ μ΄λ¦ λ€μ μ½λ‘ (:)μ μμ±νκ³ ν μΉΈ λμ΄ λ€ CaseIterable νλ‘ν μ½ μ¬μ©.
π‘ μν μ΄κ±°ν
μν μ΄κ±°νμ μ΄κ±°ν νλͺ©μ μ°κ΄ κ°μ΄ μ΄κ±°ν μμ μ κ°μ΄κ³ μ ν λ μ¬μ©νλ€.
μν μ΄κ±°νμ λͺ μνκ³ μΆλ€λ©΄ indirect ν€μλλ₯Ό μ¬μ©νλ€.
( νΉμ νλͺ©μλ§ νμ νκ³ μΆλ€λ©΄ -> case ν€μλ μμ indirect )
( μ΄κ±°ν μ 체μ μ μ©νκ³ μΆλ€λ©΄ -> enum ν€μλ μμ indirect )
π‘ λΉκ΅ κ°λ₯ν μ΄κ±°ν
Comparacble νλ‘ν μ½μ μ€μνλ μ°κ΄ κ°λ§ κ°κ±°λ μ°κ΄ κ°μ΄ μλ μ΄κ±°νμ Comparable νλ‘ν μ½μ μ±ννλ©΄
κ° μΌμ΄μ€λ₯Ό λΉκ΅ν μ μλ€. μμ μμΉν μΌμ΄μ€κ° λ μμ κ°μ΄ λλ€.
'π iOS > κΈ°μ΄λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift κΈ°μ΄] νλ¦μ μ΄ (0) | 2022.12.31 |
---|---|
[Swift κΈ°μ΄] μ°μ°μ (0) | 2022.12.30 |
[Swift κΈ°μ΄] λ°μ΄ν° νμ κΈ°λ³Έ (0) | 2022.12.29 |
[Swift]11 : 맀κ°λ³μλ‘μ ν΄λ‘μ (0) | 2022.12.06 |
[Swift]10 : Closure (0) | 2022.12.06 |