菜鸟斯威夫特的问题 - 我想不出这是什么意思斯威夫特:这是什么意思?变量经跟着块没有分配
public var currentTime: NSTimeInterval? {
return self.audioPlayer?.currentTime
}
currentTime
没有被分配到的代码块NSTimeInterval?
那么,是什么之后这个意思?我的参考书中没有这样的例子。
菜鸟斯威夫特的问题 - 我想不出这是什么意思斯威夫特:这是什么意思?变量经跟着块没有分配
public var currentTime: NSTimeInterval? {
return self.audioPlayer?.currentTime
}
currentTime
没有被分配到的代码块NSTimeInterval?
那么,是什么之后这个意思?我的参考书中没有这样的例子。
这是一样的:
public var currentTime: NSTimeInterval? {
get { return self.audioPlayer?.currentTime }
}
当你的计算机财产只有一个get
,可以省略字get
和大括号。
您可以通过删除获取关键字和括号简化只读计算属性的声明:
这就是所谓的Read-Only Computed Properties
根据苹果文档
一个计算的属性与getter,但没有setter被称为只读属性计算。只读计算属性总是返回一个值,并且可以通过点语法访问,但不能设置为不同的值。
欲了解更多信息Computed Properties
我写了一个小操场澄清:
//: 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