在 Swift 中,<~~ 是什么意思?

16

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

description = "desc" <~~ json

我认为使用以下内容类似:

description = json["desc"]

它正确吗?如果不是,这个操作符是什么意思?

谢谢

1个回答

12

你是正确的。但假设Swift旨在这样做是错误的。

我认为使用的解析器是Gloss,并且似乎他们已经编写了一个特定的运算符重载,用于表示description = json["desc"](或者在幕后一些其他内容使解析更容易)。该运算符在Swift中本身没有意义。但是它是由框架发明来进行解析的。

您可以在此处阅读有关运算符重载的内容。

编辑

我始终错误地将运算符重载和定义自定义运算符的术语混为一谈。运算符重载是指扩展现有运算符的实现,这与定义自己的自定义运算符不同。非常感谢@Giacomo Alzetta指出这一点!


非常感谢您:),是的,他们正在使用Gloss。 - Alberto García
太好了!不过,这回答了你的问题吗? - avismara
12
我觉得你的回答有些令人困惑。那不是运算符重载,而是定义一个自定义运算符。许多语言都支持自定义运算符(例如Haskell。如果你想尝试一些疯狂的东西,可以看看Maude…)。你所说的“这个运算符在Swift中本身没有意义”与说“函数my_function_123在Swift中本身没有意义”是相同的。运算符只是具有中缀调用语法的花哨函数名称… - Giacomo Alzetta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接