Новости

Обновление исправляет совместимость с Freenode после обновления этой сетью версии IRCd.

Вышел второй релиз-кандидат KVIrc 4.0

Ричард Столлман дал автограф проекту и пожелал успеха в разработке.

Image:Feed.png RSS

Материал из IRC клиент KVIrc.

Перейти к: навигация, поиск

Операторы это такие же команды, как и все остальные. Все операторы работают с локальными и глобальными переменными. Общий синтаксис оператора это:

       <левый операнд> <оператор> [правый операнд]

где <левый операнд> это переменная, а [правый операнд] - переменная, константа или некоторое выражение. Некоторые операторы не используют [правый операнд] и их действие распространяется напрямую на <левый операнд>.

Оператор Раздел
= Оператор присвоения
++ Операторы увеличения и уменьшения
-- Операторы увеличения и уменьшения
+= Арифметические операторы с присвоением
-= Арифметические операторы с присвоением
*= Арифметические операторы с присвоением
/= Арифметические операторы с присвоением
%= Арифметические операторы с присвоением
|= Побитовые операторы с присвоением
&= Побитовые операторы с присвоением
^= Побитовые операторы с присвоением
<<= Побитовые операторы с присвоением
>>= Побитовые операторы с присвоением
.= Операторы объединения строк
<< Операторы объединения строк
<, Операторы объединения строк
=~ binding operator

Содержание

[править] Оператор присвоения

Оператор присвоения - это самый известный из операторов. В KVS он работает аналогично тому, как это происходит в любом другом языке программирования. Синтаксис:

<цель> = <значение>

<цель> должна быть переменной, <назначение> может быть любым параметром.

Если переменная <цель> не существует,она создается. Если она уже существует, то преобразуется к типу выражения <значение>.

Если значение является пустой строкой, то переменная цели уничтожается.

# Присвоение константы переменной %Tmp
%Tmp = 1
echo %Tmp
# Присвоение строковой константы переменной %Tmp
%Tmp = some string
echo %Tmp
# Присвоение строковой константы переменной %Tmp
%Tmp = "some string with whitespace         preserved"
echo %Tmp
# Присвоение одной переменной другой копирует значение
%Someothervariable = "Contents"
%Tmp = %Someothervariable
echo %Tmp
# Присвоение переменной строки переменной %z
%color = blue
%z = my eyes are %color
echo %z
# Присвоение переменной строки (с вызовом функции внутри) переменной %x
%x = the system os is $system.osname
echo %x
# Присвоение пустой строки переменной %y уничтожает %y
%x =
echo %y
# Это эквивалент предыдущему примеру
%y = ""
# Это приведет к томуже результату если функция возвратит пустой результат
%y = $function()
# Присвоение переменной строки элементу словаря
%Dict{key} = $system.osname\ian
# Уничтожение элемента массива
%mydict[23] = ""
# Копирование словаря
%anotherdict{"The key"} = "Some dummy value"
%mydict = %anotherdict
echo %mydict{"The key"}
# Это сконвертирует словарь %mydict к строковой переменной с уничтожением всего содержимого
%mydict = "some default value"
# Уничтожение всего словаря
%anotherdict =

[править] Операторы увеличения и уменьшения

Эти 2 оператора работают только с численными операндами. Синтаксис:

<переменная>++
<переменная>--

++ увеличивает значение <переменной> на 1, -- уменьшает значение <переменной> на 1.

Это эквивалентно += 1 и -= 1.

<переменная> должна существовать и содержать целочисленное значение. Если <переменная> содержит не целое число (вещественное), то оно округляется до ближайшего целого и потом уменьшается/увеличивается.

Примеры

%a=10
echo "Увеличение"
while(%a < 20)
{
    echo %a
    %a++
}
echo "Уменьшение"
while(%a > 10)
{
    echo %a
    %a--
}
echo "тестирование в цикле"
for(%a=0;%a < 10;%a++)
{
    echo %a
}

[править] Арифметические операторы с присвоением

Арифметические операторы с присвоением работают только с численными операндами. Синтаксис:

<target> += <right_operand>
<target> -= <right_operand>
<target> *= <right_operand>
<target> /= <right_operand>
<target> %= <right_operand>

<target> должна быть существующей переменной с численным значением. <right_operand> также должен быть представлен числом. Учтите что если вы хотите, чтобы правый операнд был результатом некоторого математического выражения, то его нужно заключить в $(*) .

Оператор += увеличивает <target> на значение <right_operand> и сохраняет полученное значение в переменной <target>.

Оператор -= уменьшает <target> на значение <right_operand> и сохраняет полученное значение в переменной <target>.

Оператор *= умножает <target> на значение <right_operand> и сохраняет полученное значение в переменной <target>.

Оператор /= делит <target> на значение <right_operand> и сохраняет полученное значение в переменной <target>.

Оператор %= подсчитывает остаток при делении <target> на значение <right_operand> и сохраняет полученное значение в переменной <target>.

Операции деления вызывают ошибку в случае если <right_operand> равно 0.

Если оба выражения <target> и <right_operand> являются целыми числами, то результаты деления будут также округлены до целого числа. Если <target> или <right_operand> или оба выражения являются числами с плавающей точкой, то результатом также будет выражение с плавающей точкой. Примеры

    %a=10
    echo %a
    %a+=20
    echo %a
    %a-=$(%a - 1)
    echo %a
    %a *= 10
    echo %a
    %a /= 21
    echo %a
    %a *= 20
    echo %a
    %a /= 21.0
    echo %a
    %b = 10.0
    %a %= %b
    echo %a
    %a = 10
    %b = 3
    # nice trick
    %a /= %b.0
    echo %a

[править] Побитовые операторы с присвоением

Эти операторы работают только с целочисленными операндами. Синтаксис:

<target> |= <right_operand>
<target> &= <right_operand>
<target> ^= <right_operand>
<target> >>= <right_operand>
<target> <<= <right_operand>

<target> должна быть существующей целочисленной переменной.<right_operand> должен быть целочисленным значением. Если <target> или <right_operand> содержат значения с плавающей точкой, то они будут обрезаны до целого числа

Помните, что если вы хотите чтобы <right_operand> был результатом математического выражения, то вы должны заключить это выражение в $(*).

Оператор |= подсчитывает логическое или между <target> и <right_operand>, сохраняет результат в переменной <target>.

Оператор &= подсчитывает логическое и между <target> и <right_operand>, сохраняет результат в переменной <target>.

Оператор ^= подсчитывает логическое xor между <target> и <right_operand>, сохраняет результат в переменной <target>.

Оператор >>= сдвигает биты <target> на <right_operand> вправо, сохраняет результат в переменной <target>.

Оператор <<= сдвигает биты <target> на <right_operand> влево, сохраняет результат в переменной <target>.

Запомните что оператора "!=" не существует. Вместо него вы можете использовать %a = $(!%b).

Для операторов >>= и <<= <right_operand> должен быть положительным и целочисленным.

Примеры:

    %a = 1
    echo %a
    %a |= 2
    echo %a
    %a &= 2
    echo %a
    %a ^= 1
    echo %a
    %a >>= 2
    echo %a
    %a <<= 1
    echo %a

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

Эти операторы служат для слияния строк.

Синтаксис:

<target> .= <right_operand>
<target> << <right_operand>
<target> <, <right_operand>

Оператор .= дописывает в конец <target> строку <right_operand>.

Оператор << если <target> не является пустой строкой, дописывает в конец <target> строку <right_operand>, разделяя строки пробелом. Если строка <target> пустая, то присваивает ей значение <right_operand>.

Оператор <, действует также как << но использует запятую в качестве разделителя.

Последние 2 оператора очень удобны при создании списков строк, разделенных пробелами или запятыми.

Примеры:

    %a = ""
    %a << free
    echo %a
    %a .= bsd
    echo %a
    %a << rox
    echo %a
    %a <, but linux is better!
    echo %a
Личные инструменты
Инструменты
Наши кнопки
Размести кнопку KVirc у себя на сайте:
www.kvirc.ru - кроссплатформенный IRC клиент с богатым графическим интерфейсом и внутренним языком скриптинга
Друзья и спонсоры
  • Fireforge.net
Linux coutner