什么类型的123_456_789?

时间:2015-11-23 08:33:47

标签: swift types

我在Swift示例中看到了像123_456_789这样的值,带有下划线的数字。这些值默认具有什么类型?

它取决于我分配给它的变量的类型吗?它们看起来很有趣,对我来说很新,所以我想知道,如果它们像它们一样被抛出,它们如何处理,而没有定义类型?

2 个答案:

答案 0 :(得分:8)

从文档中 (Swift编程语言 - >语言指南 - >基础知识 - > Numeric Literals):

  

数字文字可以包含额外的格式以使其更容易   读。整数和浮点数都可以填充额外的零和可以   包含下划线以帮助提高可读性。两者都没有   格式化会影响文字的基础值:

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1

因此,您的123_456_789是一个整数字面值,与123456789相同。 您可以在任何地方插入下划线,而不仅仅是作为 "千位分隔符",例如1_2_3_4_5_6_7_8_91_23_4567_89,如果您想编写混淆代码。

答案 1 :(得分:0)

123_456_789是一个"整数字面值"就像123456789一样。"整数字面数"是一个独立于Int或Int32或Int8或其他类型的类型。一个"整数字面值"可以分配给任何整数类型(与例如只能分配给Int的Int值不同)。

如果你问我可以将它们视为整数",那是没有意义的。它是一种不同的类型。对于每种类型,都有规则如何使用它。 Int和"整数字的规则"是不同的。