在Swift中,结肠后有一个类型声明有什么影响?

时间:2015-03-12 14:20:05

标签: swift syntax casting nsdictionary

基本上,它们之间的区别是什么:

var temp1 = NSDictionary()
var temp2:NSDictionary = NSDictionary()

他们的工作方式完全相同。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

在第二种情况下,您明确定义temp2的类型,称其为NSDictionary。 在第一种情况下,你让编译器推断它是NSDictionary

在您的具体示例中,没有区别。

但是,如果您这样做:

var temp1 = NSArray()
var temp2: NSDictionary = NSArray()

编译器不会抱怨temp1,推断它是NSArray,而它会抱怨temp2,注意到你试图将NSArray分配给{{1} }}

答案 1 :(得分:1)

没有区别。 Swift有类型推断,所以在你的第一个例子中,类型是NSDictionary的。在第二个示例中,您手动定义类型,这不是Swift的推荐样式,因为在XCode中,您可以通过选项单击它来检查变量的类型,因此无需过度指定所有内容并写下不必要的混乱。

答案 2 :(得分:1)

在这种情况下,除了我做的事情之外,它根本不重要:

var a = self.returnValue()

我更喜欢明确地显示类型:

var a : NSValue = self.returnValue()

为了更好的可读性。