//이름 가리는 예제
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"]
//오름차순 정렬
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)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를 리턴하며, 독립적인 부분열 사본을 리턴하는게 아님let array = [10,11,12,13,14,15]
array.firstIndex(of: 12) // 2
contains는 문자열이나 배열에 특정 문자가 속해있는지 문자열 포함여부를 Boolean값으로 리턴해주는 함수var queue = Array<Int>(1 ... n)