使用这个简化Unit
的类,我有一个调用的 unset 方法 myMethod
,它在创建新实例时被初始化。
typealias Converter = (input: Double) -> Double
class Unit {
let name: String
let myMethod: Converter
init(name: String, method: Converter) {
self.name = name
self.myMethod = method
}
}
要创建此类的实例,我在初始化中附加了一个Converter
类型函数( ),如下所示:celsiusToKelvin()
func celsiusToKelvin(input: Double) -> Double { return input + 273.15 }
let celsius = Unit(name: "Celsius", method: celsiusToKelvin)
现在我可以使用celsius.myMethod()
与任何实例方法相同的方法,即使我没有func
在Unit
类中将它定义为 a。
问题:
1)这是向类的特定实例添加方法的有效方法吗?
2)它也可以做struct
吗?
3)还有其他(更好/更安全)的方法来实现这一目标吗?
谢谢。