gpt4 book ai didi

swift - 在 Swift 中,我可以在变量名或枚举符号的开头使用 $ 吗?

转载 作者:行者123 更新时间:2023-11-30 10:17:45 25 4
gpt4 key购买 nike

如标题。例如:

enum MyEnum {  case $SYMBOL}let $foo = MyEnum.$SYMBOL

我收到错误:“$”后面的预期数值

有趣的是,$可以用在变量名的中间。是否有我们可以在开始时使用的符号列表?

理由:

根据 Apple 的语言指南 ( link ):

Constant and variable names cannot contain whitespace characters, mathematical symbols, arrows, private-use (or invalid) Unicode code points, or line- and box-drawing characters. Nor can they begin with a number, although numbers may be included elsewhere within the name.

不禁止使用美元符号。

但是,Closure部分确实提到了使用 $0$1 作为速记参数名称:

Swift automatically provides shorthand argument names to inline closures, which can be used to refer to the values of the closure’s arguments by the names $0, $1, $2, and so on.

保留开头使用美元符号。这与之前的规则相矛盾。

Xcode Playground 使情况进一步复杂化。如果我创建一个 Swift Playground 文件并粘贴我的代码,该变量将被评估为 (Enum Value)

最佳答案

Can I use $ at beginning of variable name or enum symbol in Swift?

不。如果您查看Lexical Structure在“标识符的语法”部分下,您将看到允许作为 identifier_head 的所有字符范围的列表。 $U+0024 未包含在列表中。

如果您进一步挖掘,您会发现enum-case-name是一个标识符和一个变量名称也是一个标识符,因此标识符的语法决定了允许的内容。

Dollar sign is not forbidden.

您链接的部分中的“禁止”字符列表似乎并不详尽。不难想出一些未列出但语法中未列出的字符:@#?。 ..

Can you explain why my code does not fail in playground? Does playground get special treatment?

这可能是一个错误——只是 Playground 稍微宽松一些的情况。

关于swift - 在 Swift 中,我可以在变量名或枚举符号的开头使用 $ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com