我试图弄清楚如何声明一个静态变量,其范围仅限于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
)和” Expected Type”(在哪里static
)Int
和static
)和“预期声明”(下等号)我不认为Swift如果不将静态变量附加到类/结构上就不支持它。尝试声明一个带有静态变量的私有结构。
func foo() -> Int {
struct Holder {
static var timesCalled = 0
}
Holder.timesCalled += 1
return Holder.timesCalled
}
7> foo()
$R0: Int = 1
8> foo()
$R1: Int = 2
9> foo()
$R2: Int = 3
问题内容: 以下代码在Swift 1.2中进行编译: 静态 函数和 类 函数有什么区别?我应该使用哪一个?何时使用? 如果我尝试定义另一个变量,它说: 类中尚不支持的类存储属性;您是说“静态”吗? 如果支持此功能,则 静态 变量和 类 变量之间有什么区别(即,当两者都在类中定义时)?我应该使用哪一个?何时使用? (Xcode 6.3) 问题答案: 和与类两者关联的方法,而不是一个类的实例。区别在于
我找不到和之间的任何区别。据我所知,类静态函数不能被继承,struct也没有继承的选项。 请不要被类中的静态函数和类函数所混淆。 VS
本文向大家介绍C++中静态成员函数与静态成员变量(static ),包括了C++中静态成员函数与静态成员变量(static )的使用技巧和注意事项,需要的朋友参考一下 C++中静态成员函数与静态成员变量(static ) 这篇介绍了静态成员函数与静态成员变量,是我的读书笔记,我希望它够简短但又比较全面,起到复习的作用。如果有一些C++知识记不清楚了,它可以帮你很快回忆起来。 复习C语言的stati
问题内容: 我可以在Swift库中看到这些定义: 定义为的成员函数与定义为的另一个成员函数有什么区别?仅仅是为了结构和枚举的静态功能,以及用于类和协议吗?还有其他应该知道的区别吗?在语法本身中具有这种区别的原理是什么? 问题答案: 是否仅将static用于结构和枚举的静态函数,将class用于类和协议? 那是主要区别。其他一些区别是类函数是动态调度的,并且可以被子类覆盖。 协议使用class关键字
我可以在Swift库中看到这些定义: 定义为的成员函数和定义为的成员函数之间有什么区别?简单地说,是用于结构和枚举的静态函数,而是用于类和协议吗?还有什么其他的不同之处是你应该知道的吗?语法本身有这种区别的理由是什么?
问题内容: 我正在尝试将以下Objective-C代码转换为Swift。在我的Objective-C代码中,有一个静态变量,可以从类方法中对其进行访问。 由于您无法从Swift的类函数中访问像这样声明的类型,因此我为此创建了一个存储属性。 我试图从这样的类函数中对其调用方法。 但是我得到这个错误 类型’[AnyObject]’的不可变值仅具有名为’removeAll’的变异成员 。 谁能告诉我此错