为什么swift语言设计者会选择用下划线而不是逗号来分隔罕见的数字

为什么swift语言设计者会选择用下划线而不是逗号来分隔罕见的数字,swift,Swift,数字文字可以包含额外的格式,使其更易于阅读。整数和浮点数都可以用额外的零填充,并且可以包含下划线以帮助提高可读性。这两种格式都不会影响文本的基础值: let paddedDouble = 000123.456 let oneMillion = 1_000_000 let justOverOneMillion = 1_000_000.000_000_1 首先,并非所有地区都用逗号分隔数字。此外,使用逗号分隔符可能会在语法上造成混乱;考虑以下函数调用: foo(123,456) 是一个文本123

数字文字可以包含额外的格式,使其更易于阅读。整数和浮点数都可以用额外的零填充,并且可以包含下划线以帮助提高可读性。这两种格式都不会影响文本的基础值:

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

首先,并非所有地区都用逗号分隔数字。此外,使用逗号分隔符可能会在语法上造成混乱;考虑以下函数调用:

foo(123,456)
是一个文本
123456
,还是两个不同的参数
123
456

原因#1:逗号不明确–无法区分以下情况:

var prices: [Double] = [1,234.00, 99.99]

# evaluates to

var prices: [Double] = [1.00, 234.00, 99.99]
但是,在这种情况下,下划线并不含糊:

var prices: [Double] = [1_234.00, 99.99]
原因#2:下划线通常用于表示在这种情况下有意义的废弃值(它本质上是一个废弃的数字)


理由#3:Swift的灵感来自Ruby,Ruby也有同样的功能。

我不是Swift语言设计师(我也不确定是否有人以任何官方身份发布过Swift,因此这可能不是向他们提问的最佳场所),但我有几个猜测:

  • 逗号是Swift中的运算符(与C中的作用大致相同)
  • 并不是每个人都使用逗号作为分隔符
  • 您可以使用下划线以任何有助于您阅读的方式分解任何数字文字,而不仅仅是作为分隔符

Ruby?我不使用它的另一个原因。。。