[TIL] Swift ๋ฌธ๋ฒ•(๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž)

2023. 4. 17. 15:02ยทSwift/๋ฌธ๋ฒ•
728x90

 

Swift

๐Ÿ’ก Swift์˜ String์€ Foundation ํ”„๋ ˆ์ž„์›Œํฌ์˜ NSString์ด bridge๋œ ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— NSString์˜ ๋ฉ”์†Œ๋“œ๋ฅผ String์—์„œ ์บ์ŠคํŒ… ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ด ๊ธ€์„ ์ฝ์—ˆ์„ ๋•Œ ์ดํ•ดํ•œ๊ฒƒ์€ Foundation์•ˆ์— NSString์ด ์žˆ์–ด์„œ String์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ฒ€์ƒ‰์„ ํ•ด๋ดค๋‹ค.

  • bridge : Objective-C ๊ฐ„์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ๊ธฐ์ˆ ๋กœ, Swift ์ฝ”๋“œ์™€ Objective-C ์ฝ”๋“œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.
  • Swift๋Š” Foundation ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ๋†’์€ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด, **String**๊ณผ NSString ์‚ฌ์ด์˜ ์ž๋™์ ์ธ ํƒ€์ž… ๋ณ€ํ™˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ **String**์—์„œ **NSString**์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์—๋Š”, ์บ์ŠคํŒ… ์—†์ด ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • NSString:
    • ํด๋ž˜์Šค
    • ์ฐธ์กฐํ˜•์‹
    • ๋ฌธ์ž์—ด์„ ์œ„ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ API ์ œ๊ณต (๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ๋ฐ ์ˆ˜์ •)
  • ์˜ˆ์‹œ (String์—์„œ NSString์˜ length ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ)
  • let swiftString: String = "Hello, World!" let length = swiftString.length print(length) // ์ถœ๋ ฅ: 13

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

  • ๋ฌธ์ž์—ด์€ ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ํ‘œํ˜„
  • ์—ฌ๋Ÿฌ์ค„์˜ ๋ฌธ์ž์—ด์€ “””๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉ
  • let a = """ fore exapmpel """
  • ์ค„๋ฐ”๊ฟˆ์€ \\ ์‚ฌ์šฉ

๋นˆ ๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™”

  • ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’
  • var emtpryString = "" var anotherEmptyString = String()
  • ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ๋Š” ์—ฌ๋ถ€๋ฅผ ํ™•์ธ
  • if string.isEmpty {}
  • ๋ฌธ์ž์—ด ์ˆ˜์ • 
  • let constantString = "Highlander" constantString += " and another Highlander" // ๋ฌธ์ž์—ด ์ƒ์ˆ˜(let)๋กœ ์„ ์–ธ๋ผ ์žˆ์–ด ์—๋Ÿฌ๋ฐœ์ƒ!
  • var variableString = "Horse" variableString += " and carriage" // variableString = Horse and carriage
  • ๋ฌธ์ž์—ด์˜ ๊ฐœ๋ณ„๋ฌธ์ž for-in loop ์‚ฌ์šฉํ•ด ์ ‘๊ทผ
  • for character in "Dog!๐Ÿถ" { print(character) } // D // o // g // ! // ๐Ÿถ
  • ๋ฌธ์ž ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ๋ฌธ์ž์—ด์˜ ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ์— ์ธ์ž๋กœ ๋„ฃ์–ด ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
  • let catCharacters: [Character] = ["C", "a", "t", "!", "๐Ÿฑ"] let catString = String(catCharacters) print(catString) // Prints "Cat!๐Ÿฑ"
  • ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์˜ ๊ฒฐํ•ฉ
  • let string1 = "hello" let string2 = " there" var welcome = string1 + string2 // welcome : "hello there" var instruction = "look over" instruction += string2 // instruction : "look over there" let exclamationMark: Character = "!" welcome.append(exclamationMark) // welcome : "hello there!"
  • ๋ฐฑ์Šฌ๋ž˜์‰ฌ ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•ด ์ƒ์ˆ˜,๋ณ€์ˆ˜,๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์„ ๋ฌธ์ž์—ด์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  • let mutiplier = 3 let message = "\\(multiplier) times 2.5 is \\(Double(multiplier) * 2.5)" // message : "3 times 2.5 is 7.5"

๋ฌธ์ž ์„ธ๊ธฐ

๋ฌธ์ž์—ด์˜ ๋ฌธ์ž์˜ ์ˆœ์ž๋ฅผ ์„ธ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ž์—ด์˜ count ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉ

let unusualMenagerie = "Koala ๐Ÿจ, Snail ๐ŸŒ, Penguin ๐Ÿง, Dromedary ๐Ÿช"
  print("unusualMenagerie has \\(unusualMenagerie.count) characters")
  // "unusualMenagerie์˜ ๋ฌธ์ž๋Š” 40๊ฐœ"

๋ฌธ์ž์—ด ์ธ๋ฑ์Šค

let greeting = "Guten Tag!"
greeting[greeting.startIndex]
// G
greeting[greeting.index(before: greeting.endIndex)]
// !
greeting[greeting.index(after: greeting.startIndex)]
// u
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index]
// a

๋ฌธ์ž์—ด ์‚ฝ์ž…๊ณผ ์‚ญ์ œ

๋ฌธ์ž์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋Š” insert(:at:), insert(contentsOf:at:), remove(at:), removeSubrange(:)  ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž ๋น„๊ต

  • == , != ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

์ ‘๋‘์‚ฌ์™€ ์ ‘๋ฏธ์‚ฌ ๋น„๊ต

  • hasPrefix(:)
  • var act1SceneCount = 0 for scene in remeoAndJuliet { if scene.hasPrefix("Act 1 ") { act1SceneCount += 1 } } print("There are \\(act1SceneCount) scenes in Act 1") // There are 5 scenes in Act 1
  • hasSuffix(:)
728x90

'Swift > ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] Swift ๋ฌธ๋ฒ•(ํ•จ์ˆ˜ Functions)  (1) 2023.04.23
[TIL] Swift ์ œ์–ด๋ฌธ  (1) 2023.04.22
[TIL] ์ ๊ทผ์  ๋ถ„์„ & ์‚ฌ์—…๊ณ„ํš์„œ  (0) 2023.03.29
[TIL] ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž(Basic Operators) & ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ  (0) 2023.03.28
[TIL] Switch๋ฌธ, ์‚ผํ•ญ์—ฐ์‚ฐ์ž, ๋ฐ์ดํ„ฐ๊ตฌ์กฐ  (0) 2023.03.26
'Swift/๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [TIL] Swift ๋ฌธ๋ฒ•(ํ•จ์ˆ˜ Functions)
  • [TIL] Swift ์ œ์–ด๋ฌธ
  • [TIL] ์ ๊ทผ์  ๋ถ„์„ & ์‚ฌ์—…๊ณ„ํš์„œ
  • [TIL] ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž(Basic Operators) & ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
bulmang
bulmang
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์ž ๋„์ „
  • bulmang
    bulmang
    bulmang
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (208)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (68)
        • List (3)
        • Two Pointer (6)
        • Binary Search (4)
        • Prefix Sum (3)
        • Sort (4)
        • Brute Force (5)
        • Array (2)
        • String (4)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (12)
        • ๋ฐฑ์ค€ (9)
        • Queue (2)
        • Stack (2)
        • Recursion (12)
      • Computer Science (16)
        • Computer Architecture (6)
        • Operating System (5)
        • Network (2)
        • ๊ธฐํƒ€ (2)
        • System Programming (1)
      • Swift (70)
        • ๊ฐœ๋ฐœ (24)
        • ์ •๋ฆฌ (25)
        • ๋ฌธ๋ฒ• (20)
      • Flutter (24)
      • ๊ธฐํƒ€ (12)
        • ํ›„๊ธฐ (12)
      • Git (6)
      • Ios ์˜คํ”ˆ์†Œ์Šค (5)
      • UI ๋””์ž์ธ (5)
      • AppleScript (2)
  • ๋งํฌ

    • Notion
    • Github
  • ํƒœ๊ทธ

    IOS
    FLUTTER
    ํ”ผํ”Œ
    Apple Developer Academy
    ๊ฐœ๋ฐœ
    SwiftUI
    today i learned
    Swift
    Xcode
    riverpod
    ํ˜‘์—…
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐฑ์ค€
    ์ปดํ“จํ„ฐ๊ตฌ์กฐ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๋ฌธ๋ฒ•
    ์žฌ๊ท€
    til
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • ์ธ๊ธฐ ๊ธ€

  • 250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
bulmang
[TIL] Swift ๋ฌธ๋ฒ•(๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”