我在Swift示例中看到了像123_456_789
这样的值,带有下划线的数字。这些值默认具有什么类型?
它取决于我分配给它的变量的类型吗?它们看起来很有趣,对我来说很新,所以我想知道,如果它们像它们一样被抛出,它们如何处理,而没有定义类型?
答案 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_9
或1_23_4567_89
,如果您想编写混淆代码。
答案 1 :(得分:0)
123_456_789是一个"整数字面值"就像123456789一样。"整数字面数"是一个独立于Int或Int32或Int8或其他类型的类型。一个"整数字面值"可以分配给任何整数类型(与例如只能分配给Int的Int值不同)。
如果你问我可以将它们视为整数",那是没有意义的。它是一种不同的类型。对于每种类型,都有规则如何使用它。 Int和"整数字的规则"是不同的。