Syntax 在这种情况下,下划线是什么意思?
迁移至Swift 2.0之前的我的代码:Syntax 在这种情况下,下划线是什么意思?,syntax,swift2,Syntax,Swift2,迁移至Swift 2.0之前的我的代码: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "RhymeFavoriten") { // pass data to next view let dest = segue.destinationViewController as! FavoritenVi
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "RhymeFavoriten") {
// pass data to next view
let dest = segue.destinationViewController as! FavoritenViewController
let source = segue.sourceViewController as! RhymeViewController // !!!!!!
dest.favoritenType = 1
dest.delegate = self
}
}
迁移告诉我将其更改为
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "RhymeFavoriten") {
// pass data to next view
let dest = segue.destinationViewController as! FavoritenViewController
_ = segue.sourceViewController as! RhymeViewController // !!!!!!!!!!
dest.favoritenType = 1
dest.delegate = self
}
或
到
我看不出,代表什么:-(
是一个占位符。这意味着分配给的值被忽略
Xcode的迁移工具进行了这些更改,因为它检测到您没有在任何地方使用source
或myArray
,因此用占位符替换了这些变量
现在,将忽略segue.sourceViewController as!lymmviewcontroller
的返回结果和[String]()
的返回结果,而不是分配给变量
返回的结果将被忽略,但表达式仍在运行时进行计算:如果有副作用,则会发生这些影响
因此,如果您实际上不需要这些指令,您应该完全删除它们。它们是被忽略的还是只是编译器优化,因为不需要存储对未使用的变量的引用?它们会被计算(计算),但会返回结果(如果有的话)未在内存中赋值,它将无效。在编译时而不是运行时求值否,它们在运行时求值。但忽略结果(未赋值给变量)。如果这些函数有副作用,这些影响就会发生;只是如果它们返回某个东西,这个东西就会被忽略。@Eric D。非常感谢!这是有道理的,我理解;-)
func textSelected(selectedText:String, selectedType:Int) {
var fullTextArr = text.componentsSeparatedByString("\n")
var myArray = [String]() // !!!!!!
func textSelected(selectedText:String, selectedType:Int) {
var fullTextArr = text.componentsSeparatedByString("\n")
_ = [String]() // !!!!!!!!!