Bytea — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
(Новая: Класс <tt>bytea</tt> (от англ. ''byte array'' — массив байтов) используется для работы с данными, как с потоком байт...)
 
м (оператор +)
 
(не показаны 3 промежуточные версии 1 участника)
Строка 16: Строка 16:
 
[[#find|find]]  
 
[[#find|find]]  
 
[[#find_first_of|find_first_of]]  
 
[[#find_first_of|find_first_of]]  
[[#find_first_not_of|find_first_not_of]]  
+
[[#find_first_not_of|find_first_not_of]]</tt>
 
'''Приводится к типам''': <tt>[[int]] [[real]] [[uid]] [[string]]</tt> <br>
 
'''Приводится к типам''': <tt>[[int]] [[real]] [[uid]] [[string]]</tt> <br>
 
'''Реализует операторы''':  
 
'''Реализует операторы''':  
Строка 33: Строка 33:
 
'''Возвращает''': <tt>int</tt> <br>
 
'''Возвращает''': <tt>int</tt> <br>
  
Оператор индексного чтения служит для получения значения некоторого байта расположенного по указанному индексу.
+
Оператор индексного чтения служит для получения значения некоторого байта расположенного по указанному индексу. Если указан индекс, выходящий за текущие границы массива, будет сгенерировано исключение [[Классы исключений#ERangeError|ERangeError]].
 
+
  
 
operator <nowiki>[]=</nowiki> (''индекс'': <tt>int</tt>, ''значение'': <tt>int</tt>) <br>
 
operator <nowiki>[]=</nowiki> (''индекс'': <tt>int</tt>, ''значение'': <tt>int</tt>) <br>
 
'''Возвращает''': <tt>int</tt> <br>
 
'''Возвращает''': <tt>int</tt> <br>
  
Оператор индексной записи, напротив, служит для установки значения байта расположенного по соответствующему индексу.
+
Оператор индексной записи, напротив, служит для установки значения байта расположенного по соответствующему индексу. Если указан индекс, выходящий за текущие границы массива, будет сгенерировано исключение [[Классы исключений#ERangeError|ERangeError]].
  
 
'''Примечание''': Имеет значение только самый младший байт переданного числа, то есть значения в диапазоне от 0 до 255.
 
'''Примечание''': Имеет значение только самый младший байт переданного числа, то есть значения в диапазоне от 0 до 255.
Строка 48: Строка 47:
 
'''Возвращает''': <tt>bytea</tt> <br>
 
'''Возвращает''': <tt>bytea</tt> <br>
  
Метод возвращает новый байт-массив, полученную путем конкатенации (сложения) текущего и переданного массивов. Размер внутреннего буфера увеличивается автоматически, однако в случае большого количества последовательных (циклических) конкатенаций, возможен предварительный вызов метода <tt>[[#resie|resize]]</tt> для повышения быстродействия и уменьшения числа промежуточных операций копирования.
+
Метод возвращает новый байт-массив, полученный путем конкатенации (сложения) текущего и переданного массивов. Размер внутреннего буфера увеличивается автоматически, однако в случае большого количества последовательных (циклических) конкатенаций, возможен предварительный вызов метода <tt>[[#resie|resize]]</tt>, для повышения быстродействия и уменьшения числа промежуточных операций копирования.
  
 
== оператор += ==
 
== оператор += ==
Строка 75: Строка 74:
 
== resize ==
 
== resize ==
  
resize(''новый размер в байтах'': <tt>[[int]]</tt>)
+
resize(''новый размер в байтах'': <tt>[[int]]</tt>) <br>
 
'''Возвращает''': текущий объект <br>
 
'''Возвращает''': текущий объект <br>
  
Метод изменяет размер внутреннего буфера, устанавливая его равным переданному числу. При увеличении размера буфера, данные останутся нетронутыми, однако незанятая область будет содержать случайные данные.  
+
Метод изменяет размер внутреннего буфера, устанавливая его равным переданному числу. При увеличении размера буфера, данные останутся нетронутыми, однако незанятая область будет содержать случайные данные.
  
 
== clear ==
 
== clear ==

Текущая версия на 18:31, 25 июня 2009

Класс bytea (от англ. byte array — массив байтов) используется для работы с данными, как с потоком байтов. Класс во многом похож на класс string. Отличие заключается в том, что string ориентируется на строковые данные в кодировке UTF-8, в то время как bytea ориентируется на байты.

Например, в случае строки "hello world" методы bytea:length и string:length вернут одно и то же число, поскольку байтовое представление будет одинаковым. В случае строки "привет мир", длины уже не будут совпадать, поскольку в кодировке UTF-8 символы кирилицы будут представляться уже двумя байтами.

Родители: Object
Методы: empty length resize clear substr replace replace_all insert erase find find_first_of find_first_not_of Приводится к типам: int real uid string
Реализует операторы: +, +=, <<, индексного доступа, присваивания, сравнения


[править] индексные операторы

operator [] (индекс: int)
Возвращает: int

Оператор индексного чтения служит для получения значения некоторого байта расположенного по указанному индексу. Если указан индекс, выходящий за текущие границы массива, будет сгенерировано исключение ERangeError.

operator []= (индекс: int, значение: int)
Возвращает: int

Оператор индексной записи, напротив, служит для установки значения байта расположенного по соответствующему индексу. Если указан индекс, выходящий за текущие границы массива, будет сгенерировано исключение ERangeError.

Примечание: Имеет значение только самый младший байт переданного числа, то есть значения в диапазоне от 0 до 255.

[править] оператор +

operator + (слагаемое: bytea)
Возвращает: bytea

Метод возвращает новый байт-массив, полученный путем конкатенации (сложения) текущего и переданного массивов. Размер внутреннего буфера увеличивается автоматически, однако в случае большого количества последовательных (циклических) конкатенаций, возможен предварительный вызов метода resize, для повышения быстродействия и уменьшения числа промежуточных операций копирования.

[править] оператор +=

operator += (слагаемое: bytea)
Возвращает: текущий объект

Метод изменяет текущий массив, дописывая ему в конец массив, переданный в качестве параметра. Размер внутреннего буфера увеличивается автоматически, однако в случае большого количества последовательных (циклических) конкатенаций, возможен предварительный вызов метода resize для повышения быстродействия и уменьшения числа промежуточных операций копирования.

[править] оператор <<

Эквивалент оператора +.

[править] empty

Возвращает: логическое значение

Метод возвращает истину, если массив непуст.

[править] length

Возвращает: int

Метод возвращает текущий размер данных в байтах.

[править] resize

resize(новый размер в байтах: int)
Возвращает: текущий объект

Метод изменяет размер внутреннего буфера, устанавливая его равным переданному числу. При увеличении размера буфера, данные останутся нетронутыми, однако незанятая область будет содержать случайные данные.

[править] clear

Возвращает: текущий объект

Очищает массив содержимого и сбрасывает внутренний буфер. После этого строка считается пустой.

[править] substr

substr(начальная позиция: int, количество байт: int)
Возвращает: bytea

Метод возвращает байт-массив, содержащий подмассив текущих данных, начиная с указанной позиции.

[править] replace

replace(начальная позиция: int, количество байт: int, блок замены: bytea)
Возвращает: текущий объект

Метод заменяет указанное количество байт с начальной позиции на блок замены.

[править] replace_all

replace_all(блок поиска: bytea, блок замены: bytea)
Возвращает: текущий объект

Метод находит все включения блока поиска в исходном массиве и заменяет их на блок замены.

[править] insert

insert(позиция: int, данные: bytea)
Возвращает: текущий объект

Метод вставляет переданные данные в исходныый массив, в указаную позицию, "раздвигая" имеющиеся данные.

[править] erase

erase_int(начальная позиция: int, количество байт: int)
Возвращает: текущий объект

Метод вырезает из текущих данных указанный блок.

[править] find

find(блок поиска: string [, начальная позиция: int])
Возвращает: int

Метод ищет в исходных данных искомый блок и возвращает его смещение. Для поиска блока, начиная с некоторой позиции, может быть передан второй параметр — смещение начальной позиции.

[править] find_first_of

[править] find_first_not_of

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты