我得到以下错误:"无法赋值:'word'是'let'常数"我无法弄清楚为什么会发生这种情况.如果有人可以帮助我,我会非常感激.
这是代码:
import UIKit
class ViewController: UIViewController {
var word1 = ""
@IBOutlet weak var label: UILabel!
func writeWord(word: String){
word = "Example"
}
@IBAction func button(sender: AnyObject) {
writeWord(word1)
label.text = word1
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)
Lu_*_*Lu_ 15
你想在那里实现什么?
func writeWord(word: String){
word = "Example"
}
Run Code Online (Sandbox Code Playgroud)
唯一的方法是:
func writeWord(word: String){
var word = word
word = "Example"
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 12
看到这个答案.
这似乎解决了你的问题,但仅适用于Swift 3之前的版本.
Swift中函数的参数是不可变的/你无法编辑它们.(src)
此外,字符串是值类型 - 而不是引用类型.很明显,这意味着该参数word不是对传递给函数的变量的引用.
为了更新值,您必须向函数添加一个返回值或者有一个类变量word,可以通过它来访问self.word.
如果你决定返回一个值,你会这样做:
func writeWord(word: String) -> String {
var mutableWord = word
// do stuff to word(?)
return mutableWord
}
Run Code Online (Sandbox Code Playgroud)
老实说,我真的不知道你为什么这么做,我只是在猜测你的目标是什么.
你想要:
func writeWord(word: String) {
word1 = word
word2 = word
word3 = word
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28728 次 |
| 最近记录: |