EnglishРусский  

   Приложение

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

Переопределение операций operator

Язык Gentee позволяет для объектов вводить операции с использованием уже существующих операторов (=, ==, +=, +, *, <, == и т.д.). При этом приоритет операторов остаётся неизменным. Обработка операций осуществляется с помощью специальных функций-операторов начинающихся с ключевого слова operator. Далее идет тип результата операции, символьное представление оператора и один или два параметра, в зависимости от того бинарная или унарная операция. Тип параметров совпадает с типом операндов и в параметрах будут значения операндов. Если операция бинарная, то первый параметр представляет левый операнд, а второй правый. Операнды могут быть разного типа. Если результатом является новый объект ( например при сложении ), то необходимо использовать атрибут result. Так же вы можете использовать атрибут alias, если это необходимо.

Если Вы хотите определить операторы сравнения для своего типа, то вам достаточно определить операторы ==, < и >. Операторы !=, >=, <= не требуют определения и автоматически приводятся компилятором к ==, < и >.

operator str +<result>( str left right )
{
   ( result = left ) += right
}

operator str +=( str left, int val )
{
   return left.out4( "%i", val )
}

func main<main>
{
   str dest = "Zero", a="One", b="Two"
   
   print( ( dest = a + b )+= 323 )
}

Смотрите также

Редактировать