iOS - невозможно присвоить значение типа «Double» типу «Float» - PullRequest
0 голосов
/ 17 января 2019

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

let MAX_RADIUS_IN_MILE = 100.0

radiusSlider.maximumValue = MAX_RADIUS_IN_MILE

В этом случае я получаю ошибку - Cannot assign value of type 'Double' to type 'Float'

Я не хочу объявлять константу с определением типа, подобным этому let MAX_RADIUS_IN_MILE: Float = 100.0, но просто хочу знать другой умный способ сделать эту константу как Float.

Есть идеи?

Например, C # имеет решение для этого.

1 Ответ

0 голосов
/ 17 января 2019

Во-первых, используйте camelCase для именования в Swift. lowerCamelCase для констант / переменных / функций и UpperCamelCase для типов (классов, ...)

MAX_RADIUS_IN_MILE -> maxRadiusInMile


Теперь к вашей проблеме. Ошибка ясна, у вас есть константа типа Double (если вы не указываете тип десятичного числа, компилятор присваивает ему тип Double), но для присвоения maximumValue требуется тип Float. Что теперь?

Одно из решений, если вам нужна ваша константа типа Float: укажите тип вашей константы как Float

let maxRadiusInMile: Float = 100
let maxRadiusInMile = Float(100)

В любом случае, если вам нужна эта константа только для присвоения одного значения, команда use может назначить ее напрямую

radiusSlider.maximumValue = 100

Если вам по какой-то причине требуется, чтобы ваша константа была типа Double, то вы можете преобразовать свою константу типа Double в Float с помощью разработанного инициализатора

let maxRadiusInMile = 100.0
radiusSlider.maximumValue = Float(maxRadiusInMile)
...