【问题标题】:What is the Swift syntax " .bar" called?Swift 语法“.bar”叫什么?
【发布时间】:2017-10-30 20:00:24
【问题描述】:

Swift 有这个方便的语法:

enum Foo {
    case bar
    case baz
}


func hoge(foo: Foo) {
}


hoge(foo: .bar) // This

enums 以外的地方镜像:

struct Qux {
    static let `default` = Qux()
}


func hoge(qux: Qux) {
}


hoge(qux: .default) // This

我不确定在对话/门票中如何称呼它。也许是“类型推断的点语法”?我不确定。 这种语法有正式名称吗?如果有,它是什么?

【问题讨论】:

标签: swift syntax naming


【解决方案1】:

它被称为隐式成员表达式。来自the grammar section of the language guide

隐式成员表达式是访问成员的缩写方式 上下文中的类型,例如枚举案例或类型方法 其中类型推断可以确定隐含的类型。它有 如下形式:

.member name

例如:

var x = MyEnumeration.someValue
x = .anotherValue

【讨论】:

  • 谢谢!这适用于其他语言吗? (例如,我正在考虑起草一份将其带到 Kotlin 的提案)或者这是 Swift 专有术语的发明?
  • @BenLeggiero 我不明白为什么该术语不能应用于具有类型成员和表达式概念的其他语言。尽管如此,快速的谷歌搜索显示该术语似乎在 Swift 之外没有太多使用。虽然这是一个足够通用的术语,我不认为它可以被称为专有 - 尽管我在该领域没有专业知识。
【解决方案2】:

来自苹果的Swift book

枚举中定义的值(如北、南、东、西)是其枚举情况。

【讨论】:

  • 我不确定我的沟通是否正确......我已经编辑了我的问题以澄清。
  • 根据您的编辑@Hamish 有答案,他不像我的那样特定于enums。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 2010-11-10
相关资源
最近更新 更多