我正在编写一个Swift应用程序并且无法递增Int类型成员变量.
我创建了变量
let index:Int
Run Code Online (Sandbox Code Playgroud)
然后在初始化程序中我使用实例化它
self.index = 0
Run Code Online (Sandbox Code Playgroud)
后来,当我尝试使用其中任何一个在函数中递增它
self.index++
Run Code Online (Sandbox Code Playgroud)
要么
self.index = self.index + 1
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,我被告知"不能用'Int'类型的参数调用'++',而在第二种情况下,'不能在'self'中分配'pos'".
我无法找到关于++运算符的信息,除了你可以编写它的自定义版本,但我认为它至少内置于整数类型.如果那不是真的那么就回答了这个问题.
另一个我不知道的问题.
谢谢!
Mar*_*n R 43
在
class MyClass {
let index : Int
init() {
index = 0
}
func foo() {
index++ // Not allowed
}
}
Run Code Online (Sandbox Code Playgroud)
index是一个常量 存储属性.它可以给出初始值
let index : Int = 0
Run Code Online (Sandbox Code Playgroud)
并且只能在初始化期间进行修改 (并且在初始化完成时它必须具有确定的值.)
如果要在初始化后更改值,则必须将其声明为变量存储属性:
var index : Int
Run Code Online (Sandbox Code Playgroud)
有关Swift文档中"属性"的更多信息.
需要注意的是,++与--在雨燕2.2弃用,在斯威夫特3(如在评论中提及)去掉,所以-如果声明为一个变量 -你增加它与
index += 1
Run Code Online (Sandbox Code Playgroud)
代替.
小智 5
我想你可以改变
let index:Int
Run Code Online (Sandbox Code Playgroud)
进入
var index:Int = 0
Run Code Online (Sandbox Code Playgroud)
因为您要增加 的值index,更改其值,所以需要将其声明为var。另外,值得注意的是它let用于声明常量。
然后,您可以使用self.index++. self.index请注意,和之间没有空格++。
希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
44604 次 |
| 最近记录: |