在此页http://www.raywenderlich.com/85578/first-core-data-app-using-swift上,许多示例使用 let 而不是 var 。
func tableView(tableView: UITableView,
cellForRowAtIndexPath
indexPath: NSIndexPath) -> UITableViewCell {
let cell =
tableView.dequeueReusableCellWithIdentifier("Cell")
as UITableViewCell
let person = people[indexPath.row]
cell.textLabel!.text = person.valueForKey("name") as String?
return cell
}
我在很多教程中看到了这一点。是否有理由在 var 上面的代码段中使用 let ?
答案 0 :(得分:5)
事实上,作为Swift程序员,要问的问题是为什么不使用var
而不是let
?这是Swift在语义上与C#等其他语言差异很大的一个领域。
原因是,一旦获得对表格单元格的引用,该引用就不会在每次调用此方法的生命周期中发生变化。 cell
没有重新分配,因为根本没有理由这样做。因此没有理由将cell
变为变量。
一般来说,在Swift中,你应该default to using let
, and only use var
if you need to reassign。请记住,let
仅阻止常量本身被重新分配;您仍然可以改变被引用的对象,就像在这种情况下在cell.textLabel!.text = person...
中所做的那样。
在Apple's documentation中还有其他细微的差异,但这适用于大多数情况。