У меня есть старая библиотека C #, которую я конвертирую в Boo, и она использует перегрузку операторов. Чтобы не понять, почему , я ищу способ сделать то же самое в Boo.
Это принимает форму:
public static bool operator <(Duration duration, TimeSpan timespan) {...}
Но Boo использует другую форму перегрузки операторов и не имеет ключевого слова operator.
public static def op_LessThan(duration as Duration, timespan as TimeSpan) as bool:
pass
(с http://boo.codehaus.org/Operator+overloading)
Эти двоичные операторы могут быть перегружены:
- op_Addition
- op_Subtraction
- op_Multiply
- op_Division
- op_Modulus
- op_Exponentiation
- op_Equality
- op_LessThan
- op_LessThanOrEqual
- op_GreaterThan
- op_GreaterThanOrEqual
- op_Match
- op_NotMatch
- op_Member
- op_NotMember
- op_BitwiseOr
- op_BitwiseAnd
Но я не вижу ничего подобного op_NotEqual (! =) В этом списке. Эти методы эквивалентны приведенному выше коду C #? И если так, что будет эквивалентно
public static bool operator !=(Duration duration, TimeSpan timespan) {...}