Читайте также:
|
|
- Свифт язык, который настаивает на ясности. Это не позволит вам быть расплывчатым и неспецифические. Мы уже видели, что он делает проверку типов. Мы не можем рассматривать строковую переменную, как это целое или наоборот, и мы видим все больше и больше из этого, как мы идем вперед. Эта ясность требуется в выражениях, являются ли они простые выражения в Println заявлении, как у меня здесь, или когда мы создаем еще одну переменную или в функции, Свифт хочет быть очень конкретным о том, как это сделать. Теперь вот то, что я имею в виду, если мы хотим, чтобы перемножить два целочисленных переменных, и они целые переменные, так как их первоначальная стоимость не имел ничего после десятичной точки, а затем это было бы прекрасно.
Умножим два целых и мы хотели бы получить еще целое, но если я дал одной из этих переменных начальное значение с плавающей точкой, я изменю UnitPrice здесь, а UnitPrice теперь будет выведено в виде двойного, а не как Int, потому что Double это тип с плавающей точкой по умолчанию у Свифта. Таким образом, в этом выражении мы сейчас умножения целое число двойной, значением с плавающей точкой и Swift будет немедленно бить тревогу. Мы получили сообщение об ошибке выскакивают здесь, потому что он не уверен, какой тип мы хотим, чтобы результат.
Хотим ли мы рассматривать еще и как целое и обрезать его и потерять то, что после десятичной точки или мы хотим, чтобы лечить целое число в виде двойного и теоретически привести к потере точности? Теперь эта ошибка не самый простой. Не удалось найти член "convertFromStringInterpolationSegment", но на самом деле проблема здесь в том, что мы пытаемся перемножить целое число двойной, а мы не специфичны о том, как это должно быть сделано. И это не только для Println отчетности. Это будет работать так же, как если бы я хотел, чтобы просто создать новую переменную на основе умножения двух из них вместе.
Мы по-прежнему будем иметь эту проблему. Раз Количество UnitPrice теперь целое число раз удвоиться. Это не уверен, как это сделать. Это не уверен, что этот результат должен быть. Несколько языков программирования будет неявно преобразовать целое число здесь, эта величина, и рассматривать его как число с плавающей точкой с результатом, являющимся другое значение с плавающей точкой, но вот что я хотел бы написать в больших мигающих букв, если я мог. Swift нет и не будет неявно преобразовать одно значение другого типа значения. Теперь это легко конвертировать один тип значения к другому.
Есть простые функции, чтобы иметь возможность сделать это. У нас есть такие функции, как Double (), что мы просто называем, или Int () или String (), но она должна быть явным. Swift можете сделать это легко, но это не будет делать это автоматически, вы должны сделать это. Это еще один безопасность особенностью Свифт. Если есть потенциал для несоответствие, за потерю информации, для неопределенности, то вы должны выбрать, вы должны быть конкретными. Таким образом, в этом случае при умножении их вместе я хочу, чтобы рассматривать целое, как будто это двухместный Двухместный, как будто это число? Ну в данном случае я не хочу потерять то, что после десятичной точки, так что давайте относиться к ним как в качестве удваивается.
Теперь это правда, я мог бы просто положить 0,0 до сюда после Количество и есть, что автоматически исходя из как Double. Вы видите это теперь работает, мы можем избавиться от ошибки, но это обман. Количество вероятно, должно быть целым числом. Мы не собираемся продавать 0,5 или 0,1 из блока, так что я собираюсь оставить, что еще как Int и в выражении здесь то, что я собираюсь сделать, это обертывание Количество в вызове Двухместный (), Теперь мы явного преобразования и у нас нет более ошибку.
Мы получаем наш результат как еще один двойной, и я мог сделать то же самое внутри интерполяции строк.Выражение вычисляется и мы получаем результат здесь, что мы хотим. Так преобразование легко сделать в Свифт. Это просто не происходит автоматически, если есть потенциал для ошибки. Теперь это правда, что есть некоторые преобразования, которые бросают даже больший потенциал для ошибки. Если вы пытаетесь сказать, чтобы преобразовать строковое значение в числовое значение и шнур фактически не провести числовое значение, а то, что происходит? Но это обсуждение может прийти позже, сначала давайте в управлении потоком кода.
Дата добавления: 2015-08-20; просмотров: 142 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Converting values | | | Writing if statements |