Swift 문법: 방법 (방법)
3533 단어 방법.swiftmethodsPlaygrounds
1. 개념
방법 은 특정 유형 과 연 결 된 함수 입 니 다.
2. 실례 방법
실례 방법 은 특정 클래스, 구조 체 또는 매 거 유형의 실례 에 속 하 는 방법 이다.(문법 과 함수 일치) 주의: 실례 방법 은 기 존의 실례 에서 벗 어 나 호출 될 수 없습니다.
class Counter {
var count = 0
func increment() {
count++
}
func incrementBy(amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
let counter = Counter()
counter.increment()
counter.incrementBy(5)
counter.reset()
3. 방법의 매개 변수 이름
함수 매개 변 수 는 로 컬 매개 변수 이름과 외부 매개 변수 이름 을 동시에 가 질 수 있 으 며, 이 용법 은 방법 매개 변수 에 도 적용 된다 는 것 을 알 고 있 습 니 다.
다른 것 은 코드 가 쉽게 해석 되 기 위해 서 (Swift 에서 방법의 이름 은 보통 하나의 전치사 로 방법 을 가리 키 는 첫 번 째 매개 변수, 예 를 들 어 with, for, by 등) 입 니 다. Swift 에서 의 방법 은 기본 적 인 첫 번 째 매개 변 수 는 로 컬 매개 변수 이름 일 뿐 이 고 후속 매개 변 수 는 로 컬 매개 변수 이름과 외부 매개 변수 이름 (매개 변수 이름 앞 에 '\ #' 기 호 를 추가 한 것 과 같 습 니 다).
다음은 예 를 들 어 설명 한다.
class Counter {
var count: Int = 0
func incrementBy(amount: Int, numberOfTimes: Int) {
count += amount * numberOfTimes
}
}
let counter = Counter()
counter.incrementBy(5, numberOfTimes: 3)
첫 번 째 매개 변수 에 외부 매개 변수 이름 을 정의 할 필 요 는 없 지만, 후속 매개 변 수 는 외부 매개 변수 이름 에 의 해 제한 되 어 호출 될 때 그 역할 을 명 확 히 할 수 있 습 니 다. 추가 매개 변수 에 외부 이름 을 제공 하지 않 으 려 면 밑줄 을 그 을 수 있 습 니 다. ""이 매개 변수의 명시 적 외부 이름 으로 기본 행동 을 덮어 씁 니 다."
4. 변이 방법
일반적인 상황 에서 값 형식의 속성 은 인 스 턴 스 방법 에서 수정 할 수 없습니다. 단, 변 이 된 방법 (키워드 mutting 을 통 해 설명 하 는 방법) 을 통 해 방법 내부 에서 인 스 턴 스 속성의 값 을 변경 할 수 있 습 니 다.
struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
var somePoint = Point(x: 1.0, y: 1.0)
somePoint.moveByX(2.0, y: 3.0)
println("The point is now at (\(somePoint.x), \(somePoint.y))")
// prints "The point is now at (3.0, 4.0)"
주의: 구조 체 유형 상수 에서 변이 방법 을 호출 할 수 없습니다. 상수 의 속성 이 바 뀌 지 않 기 때문에 상수 의 변수 속성 을 바 꾸 려 고 해도 안 됩 니 다.
5 、 self 속성
유형의 모든 인 스 턴 스 는 self 라 고 함 축 된 속성 이 있 습 니 다. self 는 이 인 스 턴 스 자체 와 완전히 같 습 니 다.
enum TriStateSwitch {
case Off, Low, High
mutating func next() {
switch self {
case Off:
self = Low
case Low:
self = High
case High:
self = Off
}
}
}
var ovenLight = TriStateSwitch.Low
ovenLight.next()
ovenLight.next()
여기 기록: Backgrounds 를 통 해 상기 코드 를 실행 한 결과, ovenLight. next () 의 결 과 는 예상 한 결과 가 아 닌 것 을 발 견 했 습 니 다. 자신 이 디 버 깅 에 문제 가 있 었 는 지, 아니면 Swift 나 Xcode 의 bug 가 있 었 는 지 모 르 겠 습 니 다.
6. 유형 방법
형식 자체 호출 방법 은 유형 방법 입 니 다. 성명 류 의 유형 방법 은 방법의 func 키워드 앞 에 키워드 class 를 추가 합 니 다. 성명 구조 체 와 매 거 진 유형 방법 은 방법의 func 키워드 앞 에 키워드 static 를 추가 합 니 다.
struct Rectangle {
static var color : String = "red"
static var length = 0
static var width = 0
static func calPerimeter() -> Int {
return (length + width)*2
}
static func describe() -> String {
return "The Rectangle's perimeter is \(calPerimeter()) and color is \(color)"
}
}
Rectangle.describe()
상기 예 를 통 해 알 수 있 듯 이 하나의 유형 방법 (클래스, 구조 체, 매 거 진) 은 이 유형의 다른 유형 방법의 이름 을 호출 할 수 있 으 며, 방법 명 앞 에 유형 이름 의 접 두 사 를 붙 이지 않 아 도 됩 니 다. 구조 체 와 매 거 진 유형 방법 도 유형 이름 접 두 사 를 붙 이지 않 고 정적 속성의 이름 으로 직접 접근 할 수 있 습 니 다.
7. 결어
글 마지막 업데이트 시간: 2015 년 1 월 31 일 19: 47: 40.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScrpt 의 substr () 방법추출 할 하위 문자열 의 시작 아래 표 시 됩 니 다.수치 여야 합 니 다.음수 라면 이 매개 변 수 는 문자열 의 끝부분 부터 계 산 된 위 치 를 설명 합 니 다.즉, - 1 은 문자열 의 마지막 문 자 를 가리...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.