- Today
- Total
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- swiftui Tutorials
- aws
- κ°μ© μμ
- GitHub
- swift
- κ΅¬κΈ κ²μ μ½μ
- JSON
- μ»΄ν¨ν
- s3μ ebs μ°¨μ΄μ
- SwiftUI
- ν΄λΌμ°λ
- λ©λͺ¨μ₯
- ν°μ€ν 리μ±λ¦°μ§
- Git
- EBS
- hig
- commit
- μΈμ€ν΄μ€
- μ£μ§ λ‘μΌμ΄μ
- push
- xcode
- 컀λ°
- Apple
- uikit
- ios
- Pull
- μ λλ©μ΄μ
- 리μ
- μ€λΈμ
- λͺ λ Ήμ΄ λͺ¨μμ§
DEV_Larva
ν΄λ‘μ & νν ν΄λ‘μ λ³Έλ¬Έ
π§π»μ΄λ² Swift μκ°μ λ°°μλ³Ό κ²μ λ€μκ³Ό κ°λ€. π¨π»π»
- ν΄λ‘μ λ₯Ό λ§λ€κ³ μ¬μ©νλ λ°©λ²
- νν ν΄λ‘μ λ° λ¨μΆ ꡬ문μ μ¬μ©νλ λ°©λ²
- ν¨μλ₯Ό λ§€κ°λ³μλ‘ λ°μ λ€μ΄λ λ°©λ²
1. ν΄λ‘μ κ° λ¬΄μμΈκ°μ?π€
μΌλ¨ ν΄λ‘μ μ λν΄μ κ°λ¨νκ² μΈκΈνμλ©΄ Swiftμμ μ°λ¦¬κ° μν λλ§λ€ μ λ¬ν μ μκ³ νΈμΆν μ μλ μ½λ λ©μ΄λ¦¬λ₯Ό λ§νλ€.
μ΄ ν¨μλ μ΄λ¦μ΄ μμ§λ§, κ·Έλ μ§ μμΌλ©΄ μ¬μ€μ λ§€κ°λ³μλ₯Ό μ¬μ©νμ§ μκ³ κ°μ λ°ν νμ§ μλ ν¨μμ΄λ€.
ν΄λ‘μ λ μ€κ΄νΈλ‘ μμνκ³ λλκ² λλλ° μ΄λ λ€λ₯Έλ§λ‘ λ§€κ°λ³μλ λ°ν κ°μ μ μ΄νκΈ° μν΄ μ€κ΄νΈ μΈλΆμ μ½λλ₯Ό λ£μ μ μλ€λ κ²μ μλ―Ένλ€.
μΌλ¨ νμ΅μ νλ κ³Όμ μλ κ·Έλ κ³ μ 리λ₯Ό νλ μ€μλ μ νν 100%μ΄ν΄ νλ€κ³ νκΈ°μλ λ¬΄λ¦¬κ° μλ λΆλΆμ΄μλ€.
κ·Έλμ μ΄λ²μλ The Swift Language Guide μ 곡μ λ¬Έμλ‘ λμμ λ§μ΄ λ°μ 보μλ€.
곡μλ¬Έμλ₯Ό ν΅ν΄ κΈ°λ³Έμ μΈ ν΄λ‘μ μ λν΄ νμ΅μ νκ³ λ³Έλ‘ μΌλ‘ λμ΄κ°λ³΄μ!
https://jusung.gitbook.io/the-swift-language-guide/language-guide/07-closures
Closures — The Swift Programming Language (Swift 5.7)
Closures Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C and to lambdas in other programming languages. Closures can capture and store referen
docs.swift.org
ν΄λΉ λ¬Έμμμλ μ μν¨μ, μ€μ²© ν¨μ, ν΄λ‘μ ννμμ μ μμ λν λΉκ΅λ₯Ό ν΅ν΄ λ¨Όμ μ΄ν΄νκΈ°λ³΄λ€ νΈνλ€.
- μ μ ν¨μ : μ΄λ¦μ΄ μκ³ κ°μ μΊ‘μ²νμ§ μλ ν΄λ‘μ .
- μ€μ²© ν¨μ : μ΄λ¦μ΄ μκ³ λλ¬μΈλ ν¨μμμ κ°μ μΊ‘μ²ν μ μλ ν΄λ‘μ .
- ν΄λ‘μ ννμ : μ£Όλ³ μ»¨ν μ€νΈμμ κ°μ μΊ‘μ²ν μ μλ κ°λ¨ν ꡬ문μΌλ‘ μμ±λ μ΄λ¦ μλ ν΄λ‘μ .
ν΄λ‘μ ννμ ꡬ문μ μΌλ°μ μΈ νμμ λ€μκ³Ό κ°λ€.
2. ν΄λ‘μ μμ± λ° μ¬μ©λ²
μ΄μ κ°λ¨ν μμ λ₯Ό ν΅ν΄ ν΄λ‘μ μ μ κ·Όν΄λ³΄μ
let sayHello = { (name: String) -> String in
"Hi \(name)!"
}
μ¬κΈ°μ μ°λ¦¬λ inμ΄λΌλ ν€μλκ° λ³΄μΈλ€. ν΄λ‘μ μ λ§€κ°λ³μμ λ°ν μ ν λ°λ‘ λ€μ μ€κ³ μλ κ²μ νμΈν μ μλ€. μΌλ° ν¨μλ₯Ό μ¬μ©νλ©΄ λ§€κ°λ³μμ λ°ν μ νμ΄ μ€κ΄νΈ μΈλΆμ μ‘΄μ¬νμ§λ§ ν΄λ‘μ μμλ μμ λ§νλ― κ·Έλ κ² ν μμλ€.
λ€λ₯Έ μ½λλ₯Ό νλ² λ³΄μ
func getUserData(for id: Int) -> String {
if id == 1989 {
return "Taylor Swift"
} else {
return "Anonymous"
}
}
let data: (Int) -> String = getUserData
let user = data(1989)
print(user)
ν¨μ getUserDataλ μ μλ₯Ό λ°μλ€μ¬μ λ¬Έμμ΄λ‘ λ°ν νλ ν¨μμ΄λ€. κ·Έλ°λ° ν¨μμ 볡μ¬λ³Έμ λ§λ€ λ ν¨μμ μ νμ μΈλΆ λ§€κ° λ³μ μ΄λ¦μ λν forλ₯Ό ν¬ν¨νκ³ μμ§ μλ€. λ°λΌμ 볡μ¬λ³ΈμΈ νΈμΆλ λ data(for:1989)κ° μλλΌ data(1989)λ₯Ό μ¬μ©νλ€.
μ΄ μμ μμλ λμΌν κ·μΉμΌλ‘ λͺ¨λ ν΄λ‘μ μ μ μ©λλ€. μμ μ²μ λμλ μμ μ sayHelloλ₯Ό μ¬κΈ°μ λ€μ νλ² νΈμΆ ν΄λ³΄λ©΄ ν¨μλ₯Ό 볡μ¬ν λμ κ°μ΄ λ§€κ°λ³μ μ΄λ¦μ μ¬μ©νμ§ μλλ€. μ?? μΈλΆ λ§€κ°λ³μ μ΄λ¦μ ν¨μλ₯Ό μ§μ νΈμΆν λμλ§ μ€μνμ§ ν΄λ‘μ λ₯Ό μμ±νκ±°λ ν¨μμ 볡μ¬λ³Έμ λ¨Όμ κ°μ Έμ¬ λκ° μλ κ²μ΄κΈ° λλ¬Έμ΄λ€.
3. νν ν΄λ‘μ μ¬μ©νλ λ°©λ²
λ§μ½ ν¨μμ λ§μ§λ§ μΈμκ° μ½λ‘μ κ° λ€μ΄κ° μκ³ ν΄λΉ ν΄λ‘μ κ° κΈΈμ΄μ§κ² λλ€λ©΄ νν ν΄λ‘μ λ₯Ό μ¬μ©ν μ μλ€.
func someFunctionThatTakesAClosure(closure: () -> Void) {
// function body goes here
}
ν΄λ‘μ μ μΈμ κ° λΆλΆκ³Ό λ°ν ν λΆλΆμ μλ΅νκ±°λ
someFunctionThatTakesAClosure(closure: {
// closure's body goes here
})
λ€μκ³Ό κ°μ΄ ννν΄λ³Ό μ μλ€.
μ¬μ€μ ν¨μλ₯Ό λκ΄νΈ () {}λ‘ λ¬Άλ κ², μΌλ°μ μΈ μ μ ν¨μ ννκ° μ¬μ€μ ν΄λ‘μ ννλ₯Ό μ΄λ―Έ μ¬μ©νκ³ μμλ κ²μΈλ°,
μμμ μΈκΈνμλ μμ λ₯Ό λ°λ‘ νν ν΄λ‘μ λ₯Ό μ΄μ©ν΄ ννν΄λ³΄λ©΄ λ€μκ³Ό κ°λ€.
someFunctionThatTakesAClosure() {
// trailing closure's body goes here
}
4. ν¨μλ₯Ό λ§€κ°λ³μλ‘ λ°μλ€μ΄λ λ°©λ²
μ΄ ννΈλ μμμ λ°°μ΄ νν ν΄λ‘μ ννΈ λλ¬Έμ νΉν μ€μνλ κΈ°μ λ‘ κ°μ§κ³ μλ€λ©΄ μΆ©λΆν μ μ©νκΈ° λλ¬Έμ νλ² λ°°μ보μ!
func makeArray(size: Int, using generator: () -> Int) -> [Int] {
var numbers = [Int]()
for _ in 0..<size {
let newNumber = generator()
numbers.append(newNumber)
}
return numbers
}
λ€μ μμ λ ν¨μλ₯Ό μνλ νΉμ νμλ§νΌ λ°λ³΅ν΄ μ μ λ°°μ΄μ μμ± ν¨μλ‘ μμΈν ν μ€μ© λ―μ΄λ³΄λ©΄,
- ν¨μ makeArray()λ λ κ°μ λ§€κ° λ³μκ° νμνλ°, κ·Έμ€ νλλ μ°λ¦¬κ° μνλ μ μμ κ°μμ΄κ³ μ μ λ°°μ΄μ λ°ννλ€.
- λ λ²μ§Έ λ§€κ° λ³μλ ν¨μμ΄λ€. λ§€κ° λ³μ μ체λ₯Ό νμ©νμ§ μμ§λ§ νΈμΆλ λλ§λ€ νλμ μ μλ₯Ό λ°ννλ€.
- makeArray() λ΄λΆμμλ λΉ μ μ λ°°μ΄μ μλ‘ νλ λ§λ λ€μ μ¬μ©μκ° μμ²ν νμλ§νΌ λ°λ³΅νλ€.
- λ°λ³΅μ ν λλ§λ€ μ°λ¦¬λ νλΌλ―Έν°λ‘ μ λ¬λ generater() ν¨μλ₯Ό νΈμΆνλ€. μ΄κ² νλμ μλ‘μ΄ μ μλ₯Ό λ°ννκ² λλ€.
let rolls = makeArray(size: 50) {
Int.random(in: 1...20)
}
print(rolls)
κ²°κ³Όλ‘λ μ΄μ μ«μλ₯Ό μμ±νλ λ° μ¬μ©ν΄μΌ νλ ν¨μλ₯Ό μ λ¬ν΄μ μμμ ν¬κΈ°μ μ μ λ°°μ΄μ λ§λ€ μ μλ€λ κ±°λ€.
learning by repetition
Swiftλ₯Ό λ°°μ°λ κ³Όμ μ€μ ν΄λ‘μ λΆλΆμ΄ κ°μ₯ μ΄λ ΅λ€κ³ λ€ νλλ° νμ€ν λ§λ κ² κ°λ€...
'iOS > Swift λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ‘μΈμ€ μ μ΄ & λ©μλ (0) | 2022.08.16 |
---|---|
ꡬ쑰체 (0) | 2022.08.14 |
λ§€κ°λ³μ (0) | 2022.07.24 |
ν¨μ (0) | 2022.07.23 |
λ°λ³΅λ¬Έ (0) | 2022.07.15 |