ฉันกำลังพยายามหาวิธีประกาศตัวแปรแบบคงที่ที่กำหนดขอบเขตไว้เฉพาะในฟังก์ชันใน 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
) และ "การประกาศที่คาดหวัง" (ภายใต้เครื่องหมายเท่ากับ)