π§π»μ΄λ² Swift μκ°μ λ°°μλ³Ό κ²μ λ€μκ³Ό κ°λ€. π¨π»π»
- ν¨μ
- λ°ν κ°
- λ§€κ°λ³μ
1. ν¨μ
print("Welcome to my app!")
print("By default This prints out a conversion")
print("chart from centimeters to inches, but you")
print("can also set a custom range if you want.")
λ§μ½ μ¬μ©μκ° λ§λλ μ±μ λν νμ λ©μμ§λ₯Ό λ€μκ³Ό κ°μ΄ μΆλ ₯νκ³ μΆλ€κ³ ν΄λ³΄μ.
μΆλ ₯νκ³ μΆμλλ§λ€ ctrl + c, vλ₯Ό νλ©΄ λκΈ°μΌ νκ² μ§λ§ λ§€λ² νκΈ°μλ λ¬΄λ¦¬κ° μλ€. μ΄ μ 체 μ½λμ λν μ΄λ¦μ λΆμ΄κ³ μ΄νμλ νμ©ν μ μλ€λ©΄ μ΄λ¨κΉ?? κ·Έκ² λ°λ‘ ν¨μλ₯Ό μ¬μ©νλ λ°©λ²μ΄μ νμμ±μ΄λ€.
λ°λ‘ κ·ΈλΌ μ μμλ₯Ό ν¨μ ννλ‘ λ³ν ν΄λ³΄μ!
func showWelcome() {
print("Welcome to my app!")
print("By default This prints out a conversion")
print("chart from centimeters to inches, but you")
print("can also set a custom range if you want.")
}
showWelcome()
νλ² ν΄μ ν΄λ³΄λ©΄ ν¨μμ μμμ νμν΄μ£Όλ func ν€μλλ‘ μμμ νλλ° μ΄μ κ²½μ° λ³μλͺ κ³Ό κ°μ΄ ν¨μλͺ μ ν΄λΉλλ€. λ°λΌμ λ³μλͺ μ²λΌ ν¨μλͺ λν μ¬μ©μκ° μνλ λλ‘ μμ± λ° μμ μ΄ κ°λ₯νλ€.
μ¬κΈ°μ 맨 λ§μ§λ§ μ€μ μλ showWelcome()μ νλ² κΉκ² μ΄ν΄λ³΄μ.
μ¬κΈ°μλ μμ μμ±ν ν¨μλͺ κ³Ό κ΄νΈλ₯Ό ν¨κ» μ¬μ©νλκ²μ νμΈν μ μλλ° μ΄λ ν¨μλ₯Ό μμ±ν λμ λ§μ°¬κ°μ§λ‘ νΈμΆν λλ μ¬μ©λλ κ²μ΄λ€.
κ·ΈλΌ ν¨μλ₯Ό νΈμΆ νλ κ³Όμ μ μμλλ° κ΄νΈλ κ·Έλ₯ νΈμΆν λ μ°λ μΉκ΅¬μΈκ°? 그건 μλλ€. π βοΈ
κ΄νΈλ μ¬κΈ°μ νΈμΆν ν¨μμ λν κΈ°λ₯μ κ΅¬μ± μ΅μ μ μΆκ° ν λ μ¬μ©λλ€. κ·Έλ₯Ό ν΅ν΄ μ¬μ©μκ° μ§μ νλ λ°μ΄ν°λ₯Ό μ λ¬νλ©΄ κΈ°λ₯μ΄ λμ± μ μ° ν΄μ§λ€κ³ νλ€.
func printTimesTables(number: Int) {
for i in 1...10 {
print("\(i) x \(number) is \(i * number)")
}
}
printTimesTables(number: 5)
μ λ°λ‘ νλ² μ€μ λ‘ ν¨μκ° μ¬μ©λ λμ μμ λ₯Ό ν΅ν΄ λΆμν΄λ³΄κ³ μ΄ν΄ν΄λ³΄μ!
μμ λ μ΄μ μκ°μ λ°λ³΅λ¬Έμμ λμ¨ κ³±μ κ²°κ³Όλ₯Ό 보μ¬μ£Όλ μμ μΈλ° ν¨μνμΌλ‘ λ³ννμλ€. κ²°κ³Όλ 5μ λν΄ 1λΆν° 10κΉμ§μ κ³±μ λνλΈλ€.
number:Int κ° κ΄νΈ μμ μκ³ λ§μ§λ§μ ν΄λΉ numberμ 5λΌλ μ μ κ°μ μ§μ ν΄μ£Όμλ€.
κ΄νΈ μμ μ°λ¦¬λ λ§€κ° λ³μλΌκ³ νλ€. μ¬μ©μ μ μ μ§μ μΌλ‘ λκ΅°κ° μ΄ ν¨μλ₯Ό νΈμΆ λ§€κ°λ³μμλ μ μλ₯Ό μ λ¬ν΄μΌ νλ€.
λ°λΌμ printTimesTables()κ° νΈμΆλ λλ μ«μ 5λ₯Ό λͺ μμ μΌλ‘ μμ±ν΄μ£Όμ΄μΌ νλ©° ν¨μ νΈμΆμ μΌλΆλ‘ λ§€κ° λ³μ μ΄λ¦μ μ¨μΌ νλ€.
κ·Έλ¦¬κ³ Swiftμμλ κ° λ§€κ° λ³μκ° λ¬΄μμ νλμ§μ λν΄ μκΈ°μμΌμ£Όλ κ² λν λ§€μ° μ€μνλ€.
2. λ°ν κ°
ν¨μμμλ κΈ°λ³Έμ μΌλ‘ μμ μ κ°μ λ°ν νκΈ° μν΄μ 2κ°μ§κ° νμνλ€.
1. Swiftμκ² μ΄λ€ μ’ λ₯μ λ°μ΄ν°κ° λ€μ λ°νλ μ§ μλ €μ€μΌ νλ€. μ¬μ©μ ν¨μμ μμ κ΄νΈ μμ νμ΄νμ λ°μ΄ν° μ νμ μ λ ₯νλ€.
2. λ°μ΄ν°λ₯Ό λ€μ λ°ννλ €λ©΄ λ¦¬ν΄ ν€μλκ° νμνλ€.
μλ μμ λ₯Ό 보μ!
func rollDice() -> Int {
return Int.random(in: 1...6)
}
let result = rollDice()
print(result)
μμ λ₯Ό μ€νν΄λ³΄λ©΄ random κ°μΌλ‘ μ ν΄μ§ λ²μ 1~6 μ¬μ΄μ κ° μ€ νλκ° μΆλ ₯λλ€.
ν¨μλ μ μλ₯Ό λ°νν΄μΌ νλ©° μ€μ κ°μ λ°ν ν€μλμ ν¨κ» λ°νλλ€.
μ¬κΈ°μ μμ±ν ν¨μ rollDice()λ νλ‘κ·Έλ¨μ μ¬λ¬ μμΉμμ νΈμΆν μ μλ€.
μ΄λ²μλ μ‘°κΈ λ μ΄λ €μ΄ λμ΄λλ‘ ν΄λ³΄μ
func areLettersIdentical(string1: String, string2: String) -> Bool {
let first = string1.sorted()
let second = string2.sorted()
return first == second
}
ν μ€μ© λΆμν΄λ³΄μ!
- μλ‘μ΄ ν¨μ areLettersIdentical()μ μμ±νλ€.
- ν¨μλ string1κ³Ό string2μ λ κ°μ§ λ¬Έμμ΄ λ§€κ°λ³μλ₯Ό νμ©νλ€.
- ν¨μλ λΆμΈμ λ°ννλ©°, νΉμ ν μμ μμλ true λλ falseλ₯Ό λ°ννκ² λλ€.
- ν¨μ λ³Έλ¬Έ λ΄λΆμμ λ λ¬Έμμ΄ string1, string2λ₯Ό μ λ ¬ν λ€μ == λ₯Ό μ¬μ©νμ¬ λ¬Έμμ΄μ λΉκ΅νλ€. κ°μΌλ©΄ λ°ν κ°μ΄μλ λΆμΈνμΈ trueλ falseλ₯Ό μΆλ ₯νκ² λλ€.
μ΄μ μ μμ λ₯Ό μ‘°κΈ λ μ¬ννκ² λ§λ€μ΄λ³΄μ.
func areLettersIdentical(string1: String, string2: String) -> Bool {
return string1.sorted() == string2.sorted()
}
μμμλ string1κ³Ό string2λ₯Ό λͺ¨λ μ λ ¬νμ¬ μ λ ¬λ κ°μ 첫 λ²μ§Έμ λ λ²μ§Έ μ μμμ λ°λ‘ ν λΉνλ€.
νμ§λ§ μ΄λ²μλ first, secondμ κ°μ μμ μμλ₯Ό μλ΅νκ³ sorted()μ κ²°κ³Όλ₯Ό μ§μ λΉκ΅ν μ μλ€.
μ½λκ° λ§μ΄ μ€μμ§λ§ λ μλ΅ν μ μμκΉ? κ°λ₯νλ€!! μ΄λ―Έ μ¬μ©μκ° Swiftμκ²λ μ΄ ν¨μκ° λΆμΈμ λ°νν΄μ€μΌ νλ€κ³ νκ³ ν¨μκ° ν μ€μ μ½λλ§ κ°μ§κ³ μμ λ return ν€μλλ₯Ό μμ μ κ±°ν μ λμλ€. μ΄λ κ² λ§μ΄λ€.
func areLettersIdentical(string1: String, string2: String) -> Bool {
string1.sorted() == string2.sorted()
}
ν΄λΉ ν¨μλ₯Ό μ μνλ κ±°λΆν° μλ΅μ ν΄λ³΄λ©΄μ μ½λλ₯Ό λμ± κ°λ΅νκ² λ§λ€ μ μλ κ²μ λ μ°μ΅μ΄ νμν΄ λ³΄μΈλ€.
3. ν¨μμμ μ¬λ¬ κ°μ λ°ννλ λ°©λ²
μ΄λ²μλ ν¨μμμ μ¬λ¬κ°μ λ°ννλ λ²μ λν΄μ μμ보μ
κΈ°λ³Έμ μΌλ‘ ν¨μμμ λ κ° μ΄μμ κ°μ λ°ννλ €λ©΄ λ°°μ΄μ μ¬μ©ν΄λ³Ό μ μλ€.
func getUser() -> [String] {
["Taylor", "Swift"]
}
let user = getUser()
print("Name: \(user[0]) \(user[1])")
μ μ΄ μμ λ μ€νν΄λ³΄λ©΄ κ²°κ³Όλ λμ€μ§λ§ μ΄ μ½λλ νλμ μ μ¬μ μΈ λ¬Έμ μ μ κ°μ§κ³ μλλ° user [0]μ user[1]μ΄ λ¬΄μμΈμ§ κΈ°μ΅ νκΈ°κ° μ΄λ ΅λ€. κ·Έλ¦¬κ³ μμλ‘ λ°°μ΄ λ΄λΆμ λ°μ΄ν°λ₯Ό μμ νκ² λλ©΄ user[0]μ user [1]κ° μμ λ¬λΌμ§ κ°μ΄λ μλ κ°μ΄ λ μλ μλ€.
μ΄κ² λ§κ³ λ μμ λ°°μ΄μ 곡λΆν λ μ¬μ©νμλ dictionary κ°λ μ μ΄μ©νμ¬λ λ¬Έμ λ λμΌνκ² λ°μνλ€.
κ·ΈλΌ μ΄λ»κ² ν΄μΌ νλμ?π€
μ°λ¦¬λ μ¬κΈ°μ ννμ λ€μ νλ² μ¬μ©ν΄λ³΄κ² λλ€. λ°°μ΄, dictionary λ° μ§ν©κ³Ό λ§μ°¬κ°μ§λ‘ ννμ μ¬λ¬ κ°μ λ°μ΄ν°λ₯Ό νλμ λ³μμ λ£μ μ μμ§λ§, λ€λ₯Έ μ΅μ λ€κ³Όλ λ€λ₯΄κ² ννμ ν¬κΈ°κ° κ³ μ λμ΄μλ€. λν λ€μν λ°μ΄ν° μ νμ κ°μ§ μ μλ€.
μλ μμ λ₯Ό ν΅ν΄ νμΈν΄λ³΄μ!
func getUser() -> (firstName: String, lastName: String) {
(firstName: "Taylor", lastName: "Swift")
}
let user = getUser()
print("Name: \(user.firstName) \(user.lastName)")
νμ κ·Έλ¬λ―μ΄ μμλλ‘ λΆμν΄λ³΄μ.
- λ¨Όμ λ°ν κ°μ μ νμ μ΄λ¦κ³Ό μ±μ΄ κ°κ° λ¬Έμμ΄λ‘ λ κ°μ λ¬Έμμ΄μ ν¬ν¨νλ ννμΈ κ²μ νμΈν μ μλ€.
- νν λ΄λΆμ λ¬Έμμ΄μ κ°κ°μ μ΄λ¦μ΄ μλλ° μ΄λ dictionaryμ μλ μμμ ν€ μ’ λ₯μ λ€λ₯΄κ² ννμ κ° νλͺ©μ λν μ΄λ¦μ΄λ€.
- ν¨μ λ΄μμ μ½μν λλ‘ λͺ¨λ μμλ₯Ό ν¬ν¨νκ³ μ΄λ¦μ 첨λΆλ ννμ κ°μ μ½μ μ μλ€. μ¬κΈ°μλ firstNameμ΄ "Taylor"λ‘ λμ΄μλ€.
- getUser()λ₯Ό νΈμΆνλ©΄ ν€ μ΄λ¦(firstName, lastName)μ μ΄μ©νμ¬ νν κ°μ μ½μ μ μλ€.
<ννκ³Ό dictionary μ°¨μ΄μ >
μ΄ κ³Όμ μ 보면 ννμ΄ dictionaryμ λΉν΄ μ’μ μ₯μ μ κ°μ§κ³ μλ€. ννμ μ΄λ€ κ°μ΄ μ‘΄μ¬νλμ§, μ΄λ€ μ νμ΄ μλμ§λ₯Ό μ νν μ§μ νλ λ°λ©΄ μ¬μ μλ μ°λ¦¬κ° μꡬνλ κ°μ΄ ν¬ν¨λ μλ μκ³ ? μλ μλ μλ€.
μ΄λ² μκ° μ΄νλΆν°λ μμ μΌμ£ΌμΌ λμ λ°°μ΄ κΈ°λ³Έ λ¬Έλ²μ ν΅ν΄ ν¨μλ‘ λμ΄κ°λ 첫 μκ°μΌλ‘ μ‘°κΈμ© λ¬Έλ²μ μΌλ‘ μ΄λ €μμ§λ κ²μ΄ λκ»΄μ§μ§λ§ μΌλ¨μ Go!π€©
learning by repetition
https://www.hackingwithswift.com/100/swiftui/7
Day 7 – 100 Days of SwiftUI
Follow the 100 Days of SwiftUI and learn to build apps for free.
www.hackingwithswift.com
'iOS > Swift λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
ν΄λ‘μ & νν ν΄λ‘μ (0) | 2022.08.08 |
---|---|
λ§€κ°λ³μ (0) | 2022.07.24 |
λ°λ³΅λ¬Έ (0) | 2022.07.15 |
쑰건문 & μΌν μ°μ°μ (0) | 2022.07.14 |
Type annotations(νμ μΆλ‘ ) (0) | 2022.07.12 |