Swift 확장 노트
확장은 Objective-C의 분류와 유사합니다.(Objective-C의 분류와 달리 Swift의 확장자는 이름이 없습니다.)
Swift의 확장은 다음과 같습니다.
extension SomeType {
//
//
}
확장은 기존 형식을 하나 이상의 프로토콜에 따를 수 있습니다.이 경우 프로토콜 이름은 클래스 또는 구조체와 동일하게 작성됩니다.
extension SomeType: SomeProtocol, AnotherProtocol {
// implementation of protocol requirements goes here
}
확장은 기존 형식에 새로운 실례 방법과 형식 방법을 추가할 수 있습니다.다음 예제에서는 Int 유형에 repetitions라는 새 인스턴스 메서드를 추가합니다.
extension Int {
func repetitions(task: () -> Void) {
for _ in 0..
repetitions(task:) 방법은 ()->Void 형식의 단일한 실제 매개 변수를 수신합니다. 이것은 매개 변수가 없고 되돌아오는 값이 없는 함수를 나타냅니다.
3.repetitions {
print("Hello!")
}
// Hello!
// Hello!
// Hello!
확장된 실례를 추가하는 방법은 여전히 실례 자체를 수정할 수 있다.구조체와 매거 유형 방법은self나 그 자체의 속성을 수정할 때 반드시 실례적인 방법을mutating으로 표시해야 하며 원래 실현된 이변 방법과 같다.
extension Int {
mutating func square() {
self = self * self
}
}
var someInt = 3
someInt.square()
// someInt is now 9
아래 첨자
extension Int {
subscript(digitIndex: Int) -> Int {
var decimalBase = 1
for _ in 0..
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.