swift - 字符串扩展,添加方法 "add"并采用 Int 作为没有标签的参数,并返回可选的 Int

标签 swift

我正在尝试进行字符串扩展,添加方法“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/

相关文章:

swift - 计算 MKMapView 中 MKPolygon 的面积

ios - 如果语言是阿拉伯语,RangeSeekSlider 应从右向左开始

swift - 关于 swift Closure 的一个有趣现象

ios - 没有确认提示的自定义 URL 方案 (Swift)

ios - Swift 中自定义函数内的按钮操作

ios - 台风 - 额外的协作组件激活

ios - UITableView 中的多个自定义单元格与 Firebase 数据库

ios - popToViewRootController swift

ios - UITableViewCell 在多选时选择背景颜色

ios - 模拟器会杀死不像物理设备那样结束后台任务的应用程序吗?