这是什么意思?变量声明,然后是一个没有分配的块



noob swift问题 - 我无法弄清楚这意味着什么:

public var currentTime: NSTimeInterval? {
    return self.audioPlayer?.currentTime
}

currentTimeNSTimeInterval?之后未被分配给代码块,那么这是什么意思?我的参考书中不能这样的例子。

它与:

相同
public var currentTime: NSTimeInterval? {
    get { return self.audioPlayer?.currentTime }
}

当您的计算属性仅具有get时,您可以省略 get和curly括号。

来自Swift指南:

您可以通过删除GET关键字及其括号来简化仅读取计算属性的声明:

这称为 Read-Only Computed Properties

根据Apple Docs

具有Getter的计算属性,但没有设置器被称为仅读取的属性。仅读取的计算属性始终返回一个值,并且可以通过DOT语法访问,但不能将其设置为另一个值。

有关更多信息计算属性

我为澄清写了一个小操场:

//: Computed properties
import UIKit
var variable_int = 1
var computed_int: Int {
get { return 1 }
set { newValue }
}
var get_only_int: Int {
  return 1
}
var get_only_int_2: Int {
get { return 1 }
}
variable_int = 2 // legal
computed_int = 2 // legal
// computed_read_only_int = 2   // 'computed_read_only_int' is a get-only property
// computed_read_only_int_2 = 2 // 'computed_read_only_int_2' is a get-only property

// This is another way to specify a variable you could find useful, I found it somewhere on natashatherobot.com
var variable_int_2: Int = {
  return 1
}()
variable_int_2 = 2 // legal

在Xcode 8.1

中工作

相关内容

最新更新