Развертывание строки? переменная в быстром? - PullRequest
0 голосов
/ 01 сентября 2018

Я получаю сообщение об ошибке:

Не удалось выполнить игровую площадку:

ошибка: myfirstplayground.playground: 21: 19: ошибка: значение необязательного типа 'String?' не развернутый; ты хотел использовать '!' или же '?'? var dateNum = Int (даты)

Вот мой код:

//: Playground - noun: a place where people can play

import Cocoa
import Foundation


class FartsPerDate {

    var dates: Int = 0
    farts: Int = 0

    init( dateNum: Int ) {

        self.dates = dateNum
        self.fpd()
    }

    func fpd() -> Int {

        farts = Int( (dates - 1)/2 )
        return farts
    }
}

print("Which date is it? (Enter an integer): >")
var dates = readLine()
var dateNum = Int(dates)
var answer = FartsPerDate(dateNum: dateNum! )
print(answer)

1 Ответ

0 голосов
/ 01 сентября 2018

Инициализатор для Int, который принимает строку (init(_:radix:)), является «неисправным». Это означает, что если вы передадите ей строку, которая не может быть преобразована в Int, она вернет ноль.

Звучит так, что String, с которого вы начинаете, также является опциональным, поэтому вам нужно развернуть строку, а также развернуть получившийся Int:

Вам следует поискать «необязательные привязки» и защитные операторы, которые являются двумя способами справиться с необязательными:

Дополнительный переплет

if let datesString = dates, 
     let var dateNum = Int(datesString) {
   var answer = FartsPerDate(dateNum: dateNum )
   print(answer)
} else {
  print("You did not enter a valid number")
}

Или используя защитное заявление:

guard let datesString = dates, 
    let var dateNum = Int(dates) else {
  //Normally you'd use a return here but you are not inside a function so you have to
  //exit the entire playground
  fatalError("You did not enter a valid number")  
}
var answer = FartsPerDate(dateNum: dateNum )
print(answer)

Работа с опционами - это то, с чем КАЖДЫЙ программист должен смириться. Я предлагаю вам скачать Apple iBook «Язык программирования Swift» и прочитать раздел об опциях, а затем выполнить несколько упражнений, используя их, пока не почувствуете себя комфортно.

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