Строковое расширение, которое добавляет метод «add» и принимает Int в качестве параметра без метки и возвращает необязательный Int - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь сделать расширение строки, которое добавляет метод «add» и принимает Int в качестве параметра без метки и возвращает необязательный Int. Если строку можно превратить в целое число, вернуть целое число с целочисленным значением строки плюс переданное значение. Если строка не может быть преобразована в целое число, верните nil.

Я записал приведенный ниже код, но не могу заставить его работать.

Я получаю следующее предупреждающее сообщение для каждого значения:

Неизменное значение 'значение1' никогда не использовалось;рассмотрите возможность замены на '_' или удаления *


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

1 Ответ

0 голосов
/ 12 октября 2019

Проблема с вашим расширением заключается в том, что вы забыли назвать параметр метода 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

Чтобы отключить предупреждение о неиспользовании значений, вы можете просто напечатать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...