Сумма первой части строки в массив строк

У меня есть массив строк, из которых мне надо извлечь первые слова, преобразовать их в целые числа и получить их сумму.

Пример:

["5 Apple", "5 Orange", "15 Grapes"]

Ожидается выход => 25

Моя попытка:

["5","5","15"].map(&:to_i).sum
+3
2019-09-17 09:23:49
источник
4 ответа

Поведение, которое вы описываете, это как раскадровка работы (т. е. они призывают initWithCoder). Если вам нужен ваш конструктор будет называться вы можете использовать файл nib затем вызвать конструктор, который называет и правильно загрузить файл nib. Это работает на текущей версии iOS.

Единственный способ получить инъекцию конструктора с помощью раскадровки, чтобы использовать iOS 13 и , которая даст вам кодер, который вы можете пройти в конструктор, а затем вызвать супер в.

+1
2019-09-17 09:29:15

Существуют различные типы инъекций зависимостей. В данный момент Вы пытаетесь использовать конструктор на основе внедрения зависимостей, которые, к сожалению, не работаю с раскадровки, так как они должны инициализировать с дешифратором. прошивкой 13 обеспечивает некоторые дополнительные функции, которые сделают этот подход возможен, но на данный момент, Вы могли бы использовать сеттер-вместо инъекции зависимостей.

Что-то вроде следующего:

class ViewController: UIViewController {
    var factory: ViewControllerFactory!
}

protocol ViewControllerFactory {
    func makeViewController() -> ViewController
}

class DependencyContainer {
    let storyboard: UIStoryboard = UIStoryboard(name: "Storyboard", bundle: Bundle.main)
}

extension DependencyContainer: ViewControllerFactory {
    func makeViewController() -> ViewController {
        guard let vc = storyboard.instantiateViewController(withIdentifier: "ViewController") as? ViewController else {
            fatalError("Unrecognised viewController")
        }
        vc.factory = self
        return vc
    }
}
+1
2019-09-17 09:29:15

Я нашел решение, которое работает, я должен изменить код и подпись:

request.data = JSON.stringify({
  ...request.data,
  request: request.url,
  nonce: (1000 * new Date().getTime()).toString()
})
request.headers = {
  'Content-Type': 'application/json',
  'X-BFX-APIKEY': config.bitfinex.apiKey,
  'X-BFX-PAYLOAD': Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(request.data)),
  'X-BFX-SIGNATURE': Crypto.HmacSHA384(Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(request.data)),
    config.bitfinex.secretKey)
}
+3
2019-09-17 09:31:38

Попробуйте функцию =CONCATENATE()

Используя пример на веб-странице Ablebits...

        A        B        C        D
1       Dr.      Annie    Hall     =CONCATENATE(A1, “ “, B1, “ “, C1)
2       Mr.      Ace      Ventura  =CONCATENATE(A2, “ “, B2, “ “, C2)    

Кстати, вы также можете использовать встроенный оператор "&" амперсанд.

        A        B        C        D
1       Dr.      Annie    Hall     =A1 & “ “ & B1 & “ “ & C1
2       Mr.      Ace      Ventura  =A2 & “ “ & B2 & “ “ & C2  

Если вы хотите, чтобы значение только в столбце, а не Формулы, вы можете из меню Правка выберите

Copy, Paste Special..., Values

на верхней части столбца формулы или в другом месте по мере необходимости.

+0
2019-09-17 09:39:52

Посмотрите другие вопросы по меткам