我正在尝试进行字符串扩展,添加方法“add”并采用 Int 作为没有标签的参数,并返回可选的 Int。如果字符串可以转为整数,则返回字符串的整数值加上传入的值的整数。如果字符串无法转换为整数,则返回 nil。
我写了下面的代码,但我无法让它工作。
我收到每个值的以下警告消息:
<小时/>Immutable value 'value1' was never used; consider replacing with '_' or removing it
import UIKit
class MyViewController: UIViewController {
override func loadView() {
let value1: Int? = "5".add(3) // value1 will equal 8
let value2: Int? = "-2".add(1) // value2 will equal -1
let value3: Int? = "words".add(4) // value3 will be nil
}
}
<小时/>
extension String {
func add(_: Int) -> Int? {
guard let someString = Int(self) else {
return nil
}
return someString + someString
}
}
<小时/>
这就是解决方案应该是的:
let value1: Int? = "5".add(3) // value1 will equal 8
let value2: Int? = "-2".add(1) // value2 will equal -1
let value3: Int? = "words".add(4) // value3 will be nil
最佳答案
您的扩展的问题是您忘记命名方法参数func add(_ value: Int) -> Int? {
并将其添加到 someString 值中。顺便说一句,将 Ann 整数命名为 someString 是有误导性的,而 Swift 是一种类型推断语言。大多数情况下不需要显式设置结果类型:
extension String {
func add(_ value: Int) -> Int? {
guard let integer = Int(self) else {
return nil
}
return integer + value
}
}
<小时/>
let value1 = "5".add(3) // value1 will equal 8
let value2 = "-2".add(1) // value2 will equal -1
let value3 = "words".add(4) // value3 will be nil
要消除有关不使用这些值的警告,您只需打印它们即可。
关于swift - 字符串扩展,添加方法 "add"并采用 Int 作为没有标签的参数,并返回可选的 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349494/