<~~ 在 swift 中是啥意思?
Posted
技术标签:
【中文标题】<~~ 在 swift 中是啥意思?【英文标题】:What does <~~ mean in swift?<~~ 在 swift 中是什么意思? 【发布时间】:2018-07-06 08:01:04 【问题描述】:在快速检查 JSON 的解析器时,我发现了以下代码:
description = "desc" <~~ json
我想它类似于使用以下内容:
description = json["desc"]
正确吗?如果不是,这个运算符是什么意思?
谢谢
【问题讨论】:
【参考方案1】:你是对的。但假设这就是它在 Swift 中所要做的事情是错误的。
我认为正在使用的解析器是 Gloss,并且似乎他们已经编写了一个运算符重载,专门表示 description = json["desc"]
(和或或其他一些东西在引擎盖下以使解析更容易)。运算符在 Swift 中本身没有意义。但它是由框架发明来进行解析的。
您可以阅读有关运算符重载的信息here
编辑
我总是错误地交替使用术语运算符重载和定义自定义运算符。运算符重载是扩展现有运算符的实现,这与定义您自己的自定义运算符不同。非常感谢您指出这一点,@Giacomo Alzetta!
【讨论】:
非常感谢 :),是的,他们正在使用 Gloss 太棒了!不过,这能回答你的问题吗? 我觉得您的回答令人困惑。那不是运算符重载,而是定义一个自定义运算符。许多语言都支持自定义运算符(例如 Haskell。如果您想要一些疯狂的东西,请查看 Maude...)。您的句子“此运算符在 Swift 中本身没有意义”与说“函数 my_function_123 在 Swift 中本身没有意义”相同。运算符只是具有中缀调用语法的花哨的函数名称......以上是关于<~~ 在 swift 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章