在这个页面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
}
Run Code Online (Sandbox Code Playgroud)
我在很多教程中看到了这一点.有没有理由在var上面的片段中使用let?
作为事实上,作为一个程序员雨燕,要问的问题是,为什么不使用var过let?这是Swift与其他语言(如C#)在语义上有很大差异的一个领域.
原因是,一旦获得对表格单元格的引用,该引用在每次调用此方法的生命周期内都不会更改.没有重新分配cell,因为根本没有理由这样做.因此没有理由做出cell变数.
通常,在Swift中,您应该默认使用let,并且仅var在需要重新分配时使用.请记住,let只能防止常量本身被重新分配 ; 您仍然可以改变正在引用的对象,就像cell.textLabel!.text = person...在这种情况下所做的那样.
Apple的文档中还包含其他微妙的差异,但这适用于大多数情况.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           205 次  |  
        
|   最近记录:  |