[Swift] 자주 활용되는 함수 & 문법

Zoe·2022년 1월 17일
0

Swift

목록 보기
10/21
post-thumbnail

자주 활용되는 함수 & 문법


✅ replacingOccurrences(of:with:)

//이름 가리는 예제
func hideName(myName: String) -> String {
    let secondIndex = myName[myName.index(after: myName.startIndex)]
    return myName.replacingOccurrences(of: String(secondIndex), with: "*")
}

hideName(myName: "베르나르 베르베르")

💻 출력 :

베*나* 베*베*

  • 찾은 문자를 바꾸고 싶은 문자로 치환하는 함수

✅ 배열 출력

var array = ["A","B","C"]
print(array) // ["A", "B", "C"]

✅ sort & sorted

//오름차순 정렬
var array = [1,3,5,2,4,6]
array.sort()
print(array) // [1, 2, 3, 4, 5, 6]
//내림차순 정렬
var array = [1,3,5,2,4,6]
array.sort()
array.reverse()
print(array) // [6, 5, 4, 3, 2, 1]
//내림차순 정렬
var array = [1,3,5,2,4,6]
array.sort(by: >)
print(array) // [6, 5, 4, 3, 2, 1]
//sorted는 기존 배열은 그대로 두고 새로운 배열을 리턴
var array = [1,3,5,2,4,6]
array.sorted() //  [1, 2, 3, 4, 5, 6]
print(array) // [1, 3, 5, 2, 4, 6]
//내림차순 정렬
var array = [1,3,5,2,4,6]
array.sorted(by: >) // [6, 5, 4, 3, 2, 1]
print(array) // [1, 3, 5, 2, 4, 6]
  • sorted() : 기존 배열은 그대로 두고 정렬된 새로운 배열을 리턴
  • sort()sorted()의 시간 복잡도 : O(n log n)

✅ ArraySlice

let a = Array<Int>(1...10)
let b = a[3..<6] // [4, 5, 6]
  • 원본 배열 전체의 스토리지를 참조만 함
  • 스토리지자체는 원본 배열이므로, 내부적으로 이중의 startIndex, endIndex를 가져서 필요한 영역만큼을 액세스. startIndex의 값은 항상 0이라는 보장이 없음. 따라서 안전을 위해서는 특정한 정수값보다는 startIndex, endIndex를 쓰기
  • ArraySlice가 살아있는 동안에 Array에 대한 참조는 계속 유지되므로, 이는 오랜시간동안 사용하지 않는 것이 좋음. 특히 라이프 사이클이 긴 클로저 등에서 암묵적으로 ArraySlice를 참조하지 않기. 이는 원본 배열 자체의 라이프 사이클을 강제로 연장하여 리소스 낭비의 원인
  • prefix, suffix 와 같은 부분열(Sequence.Subsequcene)을 리턴하는 메소드들도 모두 ArraySlice를 리턴하며, 독립적인 부분열 사본을 리턴하는게 아님

✅ array.firstIndex(of:)

let array = [10,11,12,13,14,15]
array.firstIndex(of: 12)  // 2
  • 그 값에 해당하는 첫 번째 인덱스 값을 찾아줌

✅ contains(value)

  • contains는 문자열이나 배열에 특정 문자가 속해있는지 문자열 포함여부를 Boolean값으로 리턴해주는 함수

✅ 배열 범위로 초기화

var queue = Array<Int>(1 ... n)
profile
iOS 개발자😺

0개의 댓글