Swift型铸造和括号

时间:2014-12-15 13:28:26

标签: swift types casting

这两种铸造工程都是如此 的修改
(由Nate Cook编写,这不是真正的Type Casting,在Swift类型中使用as关键字进行转换。通过以下调用我正在使用Float参数初始化Int64。)

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)中括号的含义是什么?是为了更好的可读性还是有另一种含义? 感谢

2 个答案:

答案 0 :(得分:4)

看起来您可以添加任意数量的括号(例如(((Int64))))。括号的主要原因是进行类似(object as SomeClass).method()

的演员表

答案 1 :(得分:1)

请参阅重复的问题,但简短的回答是(Int)声明了一个包含单个Int的元组,根据语言规范,它在单个Int Int上语义相同。