什么<~~在swift中意味着什么?

Alb*_*cía 16 json ios swift

在swift中检查JSON的解析器时,我发现了以下代码:

description = "desc" <~~ json
Run Code Online (Sandbox Code Playgroud)

我想它类似于使用以下内容:

description = json["desc"]
Run Code Online (Sandbox Code Playgroud)

这是对的吗?如果不是,这个算子是什么意思?

谢谢

avi*_*ara 12

你是对的.但是假设这是Swift中的目标是错误的.

我认为正在使用的解析器是Gloss,似乎他们已经专门编写了一个操作符重载来表示description = json["desc"](和/或其他一些东西,以使解析更容易).操作员本身在Swift 中没有意义.但是它是由框架发明来进行解析的.

您可以在此处阅读有关运算符重载的信息

编辑

我总是错误地使用术语运算符重载和交换定义自定义运算符.运算符重载是扩展现有运算符的实现,这与定义自己的自定义运算符不同.非常感谢你指出这一点,@ Giacomo Alzetta!

  • 我发现你的答案令人困惑.这不是运算符*重载*,即**定义***自定义运算符*.许多语言都支持自定义操作符(例如Haskell.如果你想要疯狂的东西,请查看Maude ......).你的句子"这个运算符本身在Swift中没有意义"与说"函数my_function_123本身在Swift中没有意义"相同.运算符只是具有中缀调用语法的花哨函数名称... (12认同)