EnglishРусский  

   Приложение

Реклама

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

Определение метода method

Для любых типов языка можно определять методы. Метод - это функция привязанная к объекту некоторого типа и обычно она осуществляет какие-либо действия с этим объектом. Определение метода состоит из ключевого слова method, имени возвращаемого типа ( если он есть), типа объекта и через точку имени метода. Далее идут параметры и тело метода как у функции. Описание параметров метода аналогично описанию параметров функции. Вызов метода аналогичен получению значения поля с указанием параметров в круглых скобках: объект.имяметода( параметры ).

Внутри метода автоматически создаётся параметр this. Этот параметр содержит объект для которого вызывается данный метод. Тип параметра this совпадает с типом объекта.

method uint str.islast( uint ch )
{
    return this[ *this - 1 ] == ch 
}

func main<main>  
{
   str mystr
   ...
   if mystr.islast('\')
   {
      ...
   }
}

У метода можно указывать атрибуты result и alias как у функций. Методы отвечают за инициализацию объектов, их уничтожение, взятие индексов и конвертацию типов, а также для других целей. Более подробно об этом можно прочитать на странице Системные методы для типов.

Конвертация типов

С помощью методов можно описывать конвертацию типов. Для этого в качестве исходного типа указывается тип объекта, а конечный тип, в который следует сконвертировать объект, представлен именем метода. Если конечный тип является структурой, то необходимо использовать атрибут result.

// uint -> str
method str uint.str < result > 
{
   result.out4( "%u", this )
}

// str -> uint
method uint str.uint
{
   uint end
   return strtoul( this.ptr(), &end, 0 )
}

func main<main>  
{
   str mystr
   
   uint a = uint( "100" )
   mystr = str( a )
}

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

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