Tôi đang cố gắng tìm cách khai báo một biến tĩnh chỉ phạm vi cục bộ cho một hàm trong Swift.
Trong C, nó có thể trông giống như sau:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
Trong Objective-C, về cơ bản nó giống nhau:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
Nhưng tôi dường như không thể làm bất cứ điều gì như thế này trong Swift. Tôi đã thử khai báo biến theo những cách sau:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
Nhưng tất cả đều dẫn đến lỗi.
- Đầu tiên phàn nàn "Thuộc tính tĩnh chỉ có thể được khai báo trên một kiểu".
- Lời phàn nàn thứ hai là "Khai báo mong đợi" (ở đâu
static
) và "Mẫu mong đợi" (ở đâutimesCalledB
) - Người thứ ba phàn nàn "Các câu lệnh liên tiếp trên một dòng phải được phân tách bằng ';'" (trong khoảng trống giữa dấu hai chấm và
static
) và "Loại mong đợi" (ở đâustatic
) - Khiếu nại thứ tư "Các câu lệnh liên tiếp trên một dòng phải được phân tách bằng ';'" (trong khoảng trắng giữa
Int
vàstatic
) và "Khai báo mong đợi" (dưới dấu bằng)