Перегрузка операторов в Boo - op_NotEqual?
У меня есть старая библиотека C#, которую я конвертирую в 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) {...}
1 ответ
Решение
Так должно быть op_Inequality
(со стороны C#/.NET) - но я не знаю, поддерживается ли это в Boo. Я подозреваю, что это просто ошибка документации, и, вероятно, будет работать нормально.