[英]Add alias to logical operators
我有ruby項目(沒有rails),我想為類的邏輯AND和OR運算符添加別名。 我已經為類重載了邏輯運算符,但是如果我添加alias_method :foo, :or
並像class_example_1 foo class_example_2
那樣使用class_example_1 foo class_example_2
,則會出現SyntaxError。 如何使別名起作用?
不幸的是,您不能這樣做。
Ruby的infix運算符(如and
和or
被硬編碼為語言語法的一部分,因此您無法像在Haskell或Kotlin中那樣定義新的infix運算符。
有一些奇怪但有趣的技巧可以使您獲得相似的結果,但是解析器約束意味着您無法完全實現想要達到的目的。
或者,您可以只調用不帶括號的foo
,看起來很相似:
class_example_1.foo class_example_2
或者,由於您已經超載了現有的邏輯運算符,因此只需使用以下運算符:
class_example_1 or class_example_2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.