双扩展 Swift
Double Extension Swift
我正在尝试在 playground 中创建 Double 类型的 iOS Swift 扩展,该扩展实现了名为 add 的方法 接收一个 String 和 returns 一个可选的 Double (Double?).
扩展 Double 类型,使用扩展,并添加一个名为 add 的方法,该方法采用 String 作为没有标签的参数并且 returns a Double?.
如果String参数可以变成Double,return String 的 Double 值加上调用 add 的 Double 的值。如果 String 不能变成 Double,return nil.
为了测试这段代码,我需要使用:
let value1: Double? = 3.5.add("1.2") //value should be 4.7
let value3: Double? = 1.5.add("words") //value should be nil
extension Double {
func add(_ value: String) -> Double? {
guard let someNum = Double?(self) else {
return nil
}
return (someNum + value)
}
}
https://i.stack.imgur.com/VLM2E.png
看起来您对要在 guard
语句中展开什么以及需要将什么从 String
转换为 Double
感到有点困惑。在您当前的代码中,您尝试将 self
,即 already a Double
转换为 Double?
- 然后,您尝试添加它Double?
到 String
.
这是一个固定版本:
extension Double {
func add(_ value: String) -> Double? {
guard let numValue = Double(value) else {
return nil
}
return self + numValue
}
}
我正在尝试在 playground 中创建 Double 类型的 iOS Swift 扩展,该扩展实现了名为 add 的方法 接收一个 String 和 returns 一个可选的 Double (Double?).
扩展 Double 类型,使用扩展,并添加一个名为 add 的方法,该方法采用 String 作为没有标签的参数并且 returns a Double?.
如果String参数可以变成Double,return String 的 Double 值加上调用 add 的 Double 的值。如果 String 不能变成 Double,return nil.
为了测试这段代码,我需要使用:
let value1: Double? = 3.5.add("1.2") //value should be 4.7
let value3: Double? = 1.5.add("words") //value should be nil
extension Double {
func add(_ value: String) -> Double? {
guard let someNum = Double?(self) else {
return nil
}
return (someNum + value)
}
}
https://i.stack.imgur.com/VLM2E.png
看起来您对要在 guard
语句中展开什么以及需要将什么从 String
转换为 Double
感到有点困惑。在您当前的代码中,您尝试将 self
,即 already a Double
转换为 Double?
- 然后,您尝试添加它Double?
到 String
.
这是一个固定版本:
extension Double {
func add(_ value: String) -> Double? {
guard let numValue = Double(value) else {
return nil
}
return self + numValue
}
}