swift230 [νλ‘κ·Έλλ¨Έμ€ LV.1] μμ μ°ΎκΈ° νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ μμ μ°ΎκΈ° λ¬Έμ μ€λͺ 1λΆν° μ λ ₯λ°μ μ«μ n μ¬μ΄μ μλ μμμ κ°μλ₯Ό λ°ννλ ν¨μ, solutionμ λ§λ€μ΄ 보μΈμ. μμλ 1κ³Ό μκΈ° μμ μΌλ‘λ§ λλμ΄μ§λ μλ₯Ό μλ―Έν©λλ€. (1μ μμκ° μλλλ€.) μ ν μ¬ν nμ 2 μ΄μ 1000000 μ΄νμ μμ°μμ λλ€. μ μΆλ ₯ μ n result 10 4 5 3 μ μΆλ ₯ μ μ€λͺ μ μΆλ ₯ μ #1 1λΆν° 10 μ¬μ΄μ μμλ [2,3,5,7] 4κ°κ° μ‘΄μ¬νλ―λ‘ 4λ₯Ό λ°ν μ μΆλ ₯ μ #2 1λΆν° 5 μ¬μ΄μ μμλ [2,3,5] 3κ°κ° μ‘΄μ¬νλ―λ‘ 3μ λ°ν μ μΆ import Foundation func solution(_ n:Int) -> Int { var isPrime = true var count = 0 for i in 2...n { .. 2023. 2. 7. [Swift] ν΄λ‘μ (Closure) ν΄λ‘μ (Closure) μ¬μ©μμ μ½λ μμμ μ λ¬λμ΄ μ¬μ©ν μ μλ λ‘μ§μ κ°μ§ μ€κ΄νΈ"{}" ꡬλΆλ μ½λμ λΈλ‘ μ΄λ¦μ΄ μλ ν¨μ ν΄λ‘μ λ μ΄λ ν μμλ λ³μμ μ°Έμ‘°λ₯Ό μΊ‘μ²(capture)ν΄μ μ μ₯ κ°λ₯ Swiftλ μ΄ μΊ‘μ²μ κ΄λ ¨ν λͺ¨λ λ©λͺ¨λ¦¬λ₯Ό μμμ μ²λ¦¬ νλΌλ―Έν°λ₯Ό λ°μ μ μκ³ , λ°ν κ°μ΄ μ‘΄μ¬ν μ μλ€λ μ μμ ν¨μμ λμΌ Swift ν΄λ‘μ λ μ΅μ νλ₯Ό ν΅ν΄ κΉλνκ³ λͺ νν μ€νμΌμ κ°μ§κ³ μμ λ¬Έλ§₯(context)μμ μΈμ νμ κ³Ό λ°ν νμ μ μΆλ‘ λ¨μΌ ννμ ν΄λ‘μ μ μμμ λ°ν μΆμ½λ μΈμ μ΄λ¦ νμ ν΄λ‘μ λ¬Έλ² { (λ§€κ°λ³μ μ΄λ¦ : λ§€κ°λ³μ νμ ) -> λ°ννμ in ν΄λ‘μ ννμ μ½λ } νν ν΄λ‘μ (trailing closure) ν΄λ‘μ κ° ν¨μμ λ§μ§λ§ argumentλΌλ©΄, .. 2023. 2. 6. [Swift] μ΅μ€ν μ (Extensions) μ΅μ€ν μ (Extensions) μ΅μ€ν μ μ μ΄μ©ν΄ ν΄λμ€, ꡬ쑰체, μ΄κ±°ν νΉμ νλ‘ν μ½ νμ μ κΈ°λ₯μ μΆκ° κ°λ₯ μ΅μ€ν μ μ νμ μ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μμ§λ§, μ€λ²λΌμ΄λλ ν μ μμ κ³μ°λ μΈμ€ν΄μ€ μμ± λ° κ³μ° μ ν μμ± μΆκ° μΈμ€ν΄μ€ λ©μλ λ° νμ λ©μλ μ μ μ μ΄λμ λΌμ΄μ μ 곡 Subscript μ μ μ μ€μ²© νμ μ μ λ° μ¬μ© κΈ°μ‘΄ νμ μ νλ‘ν μ½μ λ§κ² μ€μ extension Int { var add: Int { return self + 100 } var sub: Int { return self - 10 } var mul: Int { return self * 10 } var div: Int { return self / 5 } } let addition = 3.add print("Ad.. 2023. 2. 6. [Swift] νλ‘ν μ½ (Protocol) νλ‘ν μ½ (Protocol) νΉμ μμ μ΄λ κΈ°λ₯μ μ ν©ν λ©μλ, νλ‘νΌν° λ° κΈ°ν μꡬμ¬νμ ‘μ½μ’μ μ μ ν΄λμ€(class), ꡬ쑰체(struct), μ΄κ±°ν(enum)μμλ μ΄λ ν νλ‘ν μ½μ μ±ννμ¬ ν΄λΉ νλ‘ν μ½μ μꡬμ¬νμ μ€μ λ‘ κ΅¬ν κ°λ₯ νλ‘ν μ½μ μꡬμ¬νμ μΆ©μ‘±μν€λ λͺ¨λ νμ μ ν΄λΉ νλ‘ν μ½μ μ€μνλ€ νΉμ λ°λ₯Έλ€κ³ ν¨ νλ‘ν μ½μ μ±μ©ν νμμ μꡬμ¬νμ λ°λμ λͺ¨λ ꡬνν΄μΌ ν¨ νλ‘ν μ½μ νλ‘ν μ½ κ° μμμ μ§μνλ©°, ν΄λμ€μ λ¬λ¦¬ λ€μ€ μμλ μ§μ νλ‘ν μ½ μ±ννκΈ° ν΄λμ€, ꡬ쑰체, μ΄κ±°νμμ μ μν νλ‘ν μ½μ μ±ννκΈ° μν΄μλ μ½λ‘ (:)μ μ¬μ© νλμ νμ μμ λ€μμ νλ‘ν μ½μ μ±ννκΈ° μν΄μλ μ½€λ§(,)λ₯Ό μ¬μ© ν΄λμ€μμ μμκ³Ό νλ‘ν μ½ μ±νμ λμμ νλ €λ©΄ μμλ°μΌλ €λ ν΄λμ€λ₯Ό .. 2023. 2. 6. [Swift] assertμ guard assert νΉμ 쑰건μ 체ν¬νκ³ , μ‘°κ±΄μ΄ μ±λ¦½λμ§ μμΌλ©΄ λ©μμ§λ₯Ό μΆλ ₯νκ² ν μ μλ ν¨μ assert ν¨μλ λλ²κΉ λͺ¨λμμλ§ λμνκ³ μ£Όλ‘ λλ²κΉ μ€ μ‘°κ±΄μ κ²μ¦μ μνμ¬ μ¬μ© var value = 0 assert(value == 0) value = 2 assert(value == 0, "κ°μ΄ 0μ΄ μλλλ€.") 첫 λ²μ§Έ assertλ μ°Έμ΄κΈ° λλ¬Έμ μ€λ₯κ° λ°μνμ§ μμ λ λ²μ§Έ assertλ κ±°μ§μ΄κΈ° λλ¬Έμ λ°νμμλ¬κ° λ°μ Assertion failed: κ°μ΄ 0μ΄ μλλλ€. guard λ¬Έ 쑰건μ κ²μ¬νμ¬ κ·Έλ€μμ μ€λ μ½λλ₯Ό μ€νν μ§ λ§μ§ κ²°μ νλ ꡬ문 guardμ μ¬μ©νμ¬ μ‘°κ±΄μ΄ μ±λ¦½νμ§ μμ μ νΉμ μ€ν ꡬ문μ λΉ λ₯΄κ² μ’ λ£ guardμ else λΈλ‘ λ΄λΆμλ νΉμ μ½λ λΈλ‘μ μ’ λ£νλ .. 2023. 2. 6. [Swift] νμ μΊμ€ν νμ μΊμ€ν (Type Casting) μΈμ€ν΄μ€μ "νμ "μ νμΈνκ±°λ, ν΄λΉ μΈμ€ν΄μ€λ₯Ό μνΌ ν΄λμ€λ νμ ν΄λμ€λ‘ μ·¨κΈνλ λ°©λ² Swiftμμ νμ μΊμ€ν μ "is"λ "as" μ°μ°μλ‘ κ΅¬ν νμ μΊμ€ν μ μ¬μ©νμ¬ νμ μ΄ νλ‘ν μ½μ μ ν©νμ§ μ¬λΆλ νμΈ κ°λ₯ is νμ μ 체ν¬νλ μ°μ°μ λ°νμ μμ μ μ€μ 체ν¬κ° μ΄λ£¨μ΄μ§ λ°ν κ°μ Bool ν ννμμ΄ Typeκ³Ό λμΌνκ±°λ, ννμμ΄ Typeμ μλΈν΄λμ€μΈ κ²½μ° Trueλ₯Ό λ°ν μ΄ μΈμλ False λ°ν //1 let char: Character = "A" char is Character // true char is String // false //2 class Animal { } class Dog: Animal { } let dog: Dog = ... 2023. 2. 6. μ΄μ 1 Β·Β·Β· 16 17 18 19 20 21 22 Β·Β·Β· 39 λ€μ λ°μν