为什么"让"用而不是var?

时间:2015-02-17 04:10:45

标签: ios swift

在此页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

1 个答案:

答案 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中还有其他细微的差异,但这适用于大多数情况。