Оба этого типа литья работает
Редактировать
(как написано Nate Куком это не реальный типа, литье в Swift литья типа делается с as
ключевым словом. С помощью следующего вызова Я инициализация Int64 с параметром Float.)Swift литье типа и скобка
anInt = Int64(aFloat)
anInt = (Int64)(aFloat)
Первого
var anInt : Int64 = 0
var aFloat : Float = 11.5
anInt = Int64(aFloat)
println(anInt) // this prints 11
второго
var anInt : Int64 = 0
var aFloat : Float = 11.5
anInt = (Int64)(aFloat)
println(anInt) // this prints 11
Во втором примере основное отличие состоит в том, что есть круглые скобки вокруг типа Int64, но я не нахожу никакой информации о синтаксисе в документации.
Заявление Int64(aFloat)
является типичным вызовом инициализатора, который создает Int64, передавая Float в качестве параметров инициализации. Это верно?
В чем смысл скобок в (Int64)(aFloat)
? Для лучшей читаемости или есть другой смысл? Thanks
Возможный дубликат [Типы Swift внутри скобок] (http://stackoverflow.com/questions/24422108/swift-types-inside-parentheses) – bbarnhart
Я читал, но это кажется более конкретным случаем. Ответ и пример Томаса Килиана кажется хорошим объяснением. – LombaX
Не то, чтобы вы не * отливали * 'aFloat', вы вызываете инициализатор для' Int64' с поплавковым значением. Кастинг в Swift выполняется с использованием ключевого слова 'as', и в этом случае произойдет сбой. (Ваше утверждение «Утверждение ...» верное, но заголовок и другие детали указывают в неправильном направлении.) –