KVIrc → Основы KVS: Переменные.
KVS — это скриптовый язык который встроен в кроссплатформенный irc-клиент .
При его помощи можно писать и простейшие алиасы, которые облегчают жизнь рядовому пользователю, так и довольно сложные дополнения имеющие графический интерфейс.
Начнём с простейшего.
Переменные.
Переменные в KVS идентифицируются знаком %(процент) и в своём имени могут содержать любые символы алфавита, цифры и знак подчёркивания(_).
Пример:
Присваивание значения переменной.
Так мы присвоили переменной %var значение 10.
Вывести значение можно так:
Переменные могут быть как локальными так и глобальными. Локальные переменные сохраняются только в контексте одного скрипта. Глобальные переменные постоянно находятся в памяти и доступны из любого скрипта. Глобальные переменные можно объявить двумя способами.
Первый и довольно редко используемый. Перед переменной пишется специальный указатель при объявлении.
Пример:
Второй и наиболее удобный. Имя переменной начинается с заглавной буквы.
Типы данных.
Переменные могут содержать как числовые значения так и строки.
Пример:
Массивы.
Ну что такое массивы я объяснять не буду.:) Массивы могут содержать как строки так и числовые значения. Создать массив можно при помощи функции $array.
Пример:
Вызвать определённый элемент массива можно указав его индекс. Не забываем что нумерация начинается с 0.
echo %array[1] вернёт нам значение two.
Массив так же можно заполнить явно присвоив значения элементам.
Пример:
Хэши.
Хэш это фактически тот же массив но в нём индексами выступают так называемые ключи. Создать хэш можно при помощи функции $hash.
Пример:
Вызвать элемент можно обратившись к нему по ключу.
Добавить элемент в хэш или переписать можно так
Ну с переменными мы закончили. На этом я пока прерву своё повествование 6 утра на дворе.:) Надеюсь Вас заинтересует этот язык и его возможности.
При его помощи можно писать и простейшие алиасы, которые облегчают жизнь рядовому пользователю, так и довольно сложные дополнения имеющие графический интерфейс.
Начнём с простейшего.
Переменные.
Переменные в KVS идентифицируются знаком %(процент) и в своём имени могут содержать любые символы алфавита, цифры и знак подчёркивания(_).
Пример:
%var
%var2
%_var
%Var
Присваивание значения переменной.
%var = 10Так мы присвоили переменной %var значение 10.
Вывести значение можно так:
echo "Значение переменной var =" %varПеременные могут быть как локальными так и глобальными. Локальные переменные сохраняются только в контексте одного скрипта. Глобальные переменные постоянно находятся в памяти и доступны из любого скрипта. Глобальные переменные можно объявить двумя способами.
Первый и довольно редко используемый. Перед переменной пишется специальный указатель при объявлении.
Пример:
global %aВторой и наиболее удобный. Имя переменной начинается с заглавной буквы.
%A = 10Типы данных.
Переменные могут содержать как числовые значения так и строки.
Пример:
%digit = 10
%string = "This is string"
Массивы.
Ну что такое массивы я объяснять не буду.:) Массивы могут содержать как строки так и числовые значения. Создать массив можно при помощи функции $array.
Пример:
%array = $array(one,two,three,four,five)Вызвать определённый элемент массива можно указав его индекс. Не забываем что нумерация начинается с 0.
echo %array[1] вернёт нам значение two.
Массив так же можно заполнить явно присвоив значения элементам.
Пример:
%array[0] = "one"
%array[9] = "two"
Хэши.
Хэш это фактически тот же массив но в нём индексами выступают так называемые ключи. Создать хэш можно при помощи функции $hash.
Пример:
%hash = $hash("ключ1","значение1","ключ2","значение2")Вызвать элемент можно обратившись к нему по ключу.
%a = %hash{"ключ2"}Добавить элемент в хэш или переписать можно так
%hash{"ключ1"} = "новое значение"Ну с переменными мы закончили. На этом я пока прерву своё повествование 6 утра на дворе.:) Надеюсь Вас заинтересует этот язык и его возможности.
- +9
- alexzulu
- 12 июня 2009, 05:55
Вроде бы месяцев 7 назад кто-то начал разрабатывать Python'овый скриптовый движок для KVIrc… Вот это бы следовало бы осветить…
Я думаю что вообще можно писать куски на питоне отдельно и запускать посредством функций $run() и $exec() из скриптов.:)
Судя по сырцам, Python вызывается точно так же — python.begin и python.end
При использовании самопального языка преимуществ нет вообще никаких. Я сомневаюсь, что сделать интерпретатор для нового языка легче, чем сделать биндинги для уже существующего языка.
Допустим зачем мне иметь установленный питон если я им не пользуюсь? А вот KVIrc будет его ставить только для того чтобы удовлетворить зависимости. Или в той же Windows всё более запущено. Пользователь скачает скрипт, а он не работает. Требуется питон тот же или перл. Сталкивался с таким используя X-chat for Windows. Думаете он будет качать это и устанавливать только для того чтобы посмотреть сколько слапов у него добавится?
Ещё как пример. Новые модули это увеличение и усложнение программы. Я согласен что можно их сделать но тогда нужна система управления модулями. Да и конечный пользователь не всегда компетентен в том что ему именно надо.
Кстати изменение размера допустим для меня имграет роль и это не на последнем месте. Сам я постоянно в разъездах и использую GPRS. С нашим качеством связи тянуть с инета пакет в 8 метров намного легче чем в 20. Я видел сам как народ отказывался качать многие программы из-за этого.
Действительно, зачем тебе установленная Java Runtime Environment, если ты ею не пользуешься? Особенно в Windows, где всё так запущено. И зачем, кстати, тебе устанавливать Qt просто так, если ты им не пользуешься?
Хороший подход — это реализация основы клиента на C/C++ и дописывание всего остального на скриптах. Или наоборот, реализация компонентов клиента в виде библиотек и использование скриптов в качестве основы клиента (склейки компонентов). Это открыло бы богатый набор возможностей, который не ограничивался бы слапами.
Смотря как понимать слово «модули». Если говорить о модулях для Python, то у него есть встроенная система управления модулями (у других языков тоже есть, я думаю). Если говорить о KVIrc… Чем система управления модулями концептуально отличается от системы управления скриптами?
Что касается размера, то см. комментарий насчёт QT и Java. Скриптовый интерпретатор ставится в систему один раз (а если мы говорим о Linux, то он там скорее всего уже стоит), что не увеличивает, а наоборот — уменьшает размер скачиваемых программ. KVIrc pre-4.0 win32 весит 42 мегабайт (распакованный), из них 15 — SSL и QT.
Не буду спорить. Поскольку никто переписывать KVIrc (или его скриптование) не собирается, то и доказывать что-то мне незачем.