<~~ 在 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 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

声明函数时,“->”在swift中是啥意思?

@objc 动态变量在 Swift 4 中是啥意思

这个块在 Swift - Alamofire 中是啥意思?

这个符号在 PHP 中是啥意思 <?=

Swift 闭包中的 $0 和 $1 是啥意思?

语句“out |= (in & 0x7F) << (bytes++ * 7);”是啥意思?在java中是啥意思?