Перегрузка операторов в Boo - op_NotEqual? - PullRequest
1 голос
/ 01 апреля 2011

У меня есть старая библиотека 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) {...}

1 Ответ

2 голосов
/ 01 апреля 2011

Это должно быть op_Inequality (со стороны C # /. NET) - но я не знаю, поддерживается ли это или как-то в Boo.Я подозреваю, что это просто ошибка документации, и, вероятно, будет работать нормально.

...