Введение, или краткий обзор — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
(Использование блоков)
(Расширение классов)
Строка 31: Строка 31:
 
TGY2g7  <a href="http://mxqoofyrxayw.com/">mxqoofyrxayw</a>
 
TGY2g7  <a href="http://mxqoofyrxayw.com/">mxqoofyrxayw</a>
  
== Расширение классов ==
+
ZhFuR6 , [url=http://mqpmsukoufhs.com/]mqpmsukoufhs[/url], [link=http://xshpcgxtxxsn.com/]xshpcgxtxxsn[/link], http://iwqelughzdje.com/
 
+
Приведенный выше пример можно переписать следующим образом:
+
 
+
<source lang="kpp" line="1">
+
package extend_demo;
+
 
+
extend int {
+
    public const function void times(block b) {
+
        for (var n = 0; n < this; n++)
+
            b(n);
+
    }
+
}
+
 
+
export function void main() {
+
    3.times() { |i| print((i to string) + " "); };
+
    print("\n");
+
}
+
</source>
+
 
+
;3-8: Оператор <tt>'''extend'''</tt> расширяет функционал класса — в данном случае класса <tt>[[Стандартные типы данных#Целые числа|int]]</tt>. Его использование аналогично объявлению класса, но объявленные внутри поля, методы и операторы будут добавлены к уже существующему классу.
+
 
+
: Таким образом, к классу <tt>int</tt>, объявленному в стандартной библиотеке, добавляется метод <tt>times()</tt>, вызывающий связанный блок количество раз, равное текущему числу (не забываем: мы добавляем метод в класс <tt>int</tt>, который отвечает за хранение числа).
+
 
+
;11: После такого объявления, в функции <tt>main()</tt> мы используем уже метод <tt>times()</tt> класса <tt>int</tt>: конструкция <tt>3.times()</tt> означает создание объекта 3 класса <tt>int</tt> и вызов у этого объекта метода <tt>times()</tt>.
+
 
+
 
+
'''Примечание:''' Расширение будет работать во всем модуле, а так же во всех модулях, которые импортируют данный модуль.
+

Версия 20:22, 2 сентября 2011

Содержание


(Введение...)

Здравствуй, мир!

Классический пример программы, выводящей строку "Hello, world!" на экран, на языке K++ выглядит следующим образом:

<source lang="kpp" line="1"> package hello_world;

export function void main() {

   print("Hello, world!\n");

} </source>


1
Как уже отмечалось ранее, в K++ любая программа или библиотека является модулем. Ключевое слово package используется для объявления имени модуля, в который должна быть скомпилирована программа.
3-5
Наконец, объявляется функция main(), которая вызывает системную функцию print() стандартной библиотеки, передав ей строку "Hello, world!\n" в качестве параметра. Пара символов \n является специальной последовательностью, которая в момент компиляции преобразуется в символ перевода строки.
Ключевое слово export говорит о том, что имя функции не следует декорировать. Декорирование имен применяется для того, чтобы дать возможность перегружать функции с одинаковыми именами, но разными списками параметров (или параметрами разных типов), а так же для реализации пространств имен.


This is way more helpful than aynhting else I've looked at.

TGY2g7 <a href="http://mxqoofyrxayw.com/">mxqoofyrxayw</a>

ZhFuR6 , [url=http://mqpmsukoufhs.com/]mqpmsukoufhs[/url], [link=http://xshpcgxtxxsn.com/]xshpcgxtxxsn[/link], http://iwqelughzdje.com/

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

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