Swift의 함수에 로컬로만 범위가 지정된 정적 변수를 선언하는 방법을 알아 내려고합니다.
C에서는 다음과 같이 보일 수 있습니다.
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
Objective-C에서는 기본적으로 동일합니다.
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
그러나 나는 Swift에서 이와 같은 것을 할 수 없습니다. 다음과 같은 방법으로 변수 선언을 시도했습니다.
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
그러나 이것들은 모두 오류를 초래합니다.
- 첫 번째는 "정적 속성은 유형에 대해서만 선언 할 수 있습니다"라고 불평합니다.
- 두 번째 ( "예상 선언"불평
static
하다) 및 "예상 된 패턴"(여기서,timesCalledB
임) - 세 번째는 "행의 연속 명령문은 ';'(콜론과 사이의 공백
static
) 및"예상 유형 "(여기서는static
)으로 구분되어야합니다. - 네 번째는 "행의 연속 문은 ';'(
Int
와 사이의 공백static
) 및"예상 선언 "(등호 아래) 으로 구분되어야합니다.