Войти
ПрограммированиеФорумОбщее

AngelScript (комментарии) (7 стр)

Страницы: 16 7 8 912 Следующая »
#90
16:10, 5 ноя. 2011

Chaos_Optima
> хм как? если функция в луа и код который она исполняет выглядит подобным
> образом return x^y;(в степени если кто не понял)
> и y нужен инт а передаётся float а степень в равной степени и то и то
> использует.
в луа нет инта:)

Констатирую: первая группа кодит на ангеле и не умеет кодить на луа, вторая, соответственно, наоборот, причем обоих языки устраивают. Так о чем спор? Спор должен родить истину - в чем различие между языками, но единственное внятное - это то что там другой синтаксис и вообще это срр с интерпретатором:)

Вы говорите что на АС можно сделать Х, а вам отвечают что Х можно делать и на луа, и даже можно делать У. А иногда У АС даже не умеет, в моем примере, например, сомневаюсь что АС может вызывать функцию, если это функция или массив функций, если это массив с функциями.


#91
16:32, 5 ноя. 2011

MATov
> читай про luabind тот же
прочитал да неплохо но конечно делает не всё что может АС например биндинг переменных класса или наследование.
RPG
> сомневаюсь что АС может вызывать функцию, если это функция или массив функций,
> если это массив с функциями.
ну так как АС строго типизированный то я точно знаю что содержит массив и если массив содержит указатели на функции то что ему помешает вызвать их?
но у меня ненужно будет делать проверку функция это или что-то другое.RPG
> Так о чем спор?
ну спор начался о синтаксисе говорили что нафиг это нужно такой синтаксис а потом пошло про биндинг что на фиг он удобный нужен и сейчас плавно перебрались на типизацию, не я спор начал. ))

#92
16:33, 5 ноя. 2011

RPG
> а вам отвечают что Х можно делать и на луа
ну так мне пока никто не ответил про биндинг переменных класса и учитывание наследования

#93
16:42, 5 ноя. 2011

Chaos_Optima
> ну спор начался о синтаксисе говорили что нафиг это нужно такой синтаксис
Ну синтаксис дело вкуса на самом деле. Мне как бы всё равно - я могу на любом языке писать, кому-то нравится луашный синтаксис. Ближайший родственник луа - JavaScript - имеет сиподобный синтаксис правда не требуя обязательно ; в конце инструкции.
Chaos_Optima
> но у меня ненужно будет делать проверку функция это или что-то другое.
В этом то и есть фишка:) В зависимости от того что это такое, объект ведет себя по-разному. Вот пример из жизни (яваскрипт).
Скажем у нас есть некий слой, для которого определен метод перемещения.
function move(x,y)
Далее, в зависимости от того, какие были переданы параметры, функция может работать по-разному.
1) если x - строка, то парсим это как смещение от текущей позиции: move("+10", "-34")
2) если x - число - то задаем абсолютные координаты move(10,10)
3) если х - массив - считываем х и у из массива: move({10,20})
4) если х - функция - вызываем её и полученное значение задаем как координату х: move(math.random)
5) и т. д.  я уж не говорю о лямбда-функциях
Chaos_Optima
> ну так мне пока никто не ответил про биндинг переменных класса и учитывание
> наследования
Луа вообще говоря язык прототипов, но если есть большое желание - можно забабахать классы с наследованием, причем луа насчитывает насколько библиотек, реализующих классы в луа (ага, в луа таки нет классов как таковых, но они лично мне там на фиг не сдались). Просто в луа есть более эффективные методы ООП, поэтому с вами никто не дружит.
Я перебрасываю в луа объекты с их методами (такие как Font с методом select, Shader с методом bind, объекты типа Framebuffer и прочее). Налседованием не страдал. Раньше фреймбуфер наследовал методы Image, но потом прошло. Для этого я просто сделал одну метатаблицу на два объекта.

#94
16:50, 5 ноя. 2011

RPG
> Далее, в зависимости от того, какие были переданы параметры, функция может
> работать по-разному.
хм забавно. у ас для этого есть any
RPG
> Просто в луа есть более эффективные методы ООП,
а можно поподробней?

#95
16:58, 5 ноя. 2011

Chaos_Optima
> а можно поподробней?
Метатаблицы, я же написал в пред. посте.

#96
17:02, 5 ноя. 2011

Chaos_Optima
> прочитал да неплохо но конечно делает не всё что может АС например биндинг
> переменных класса или наследование.

> ну так мне пока никто не ответил про биндинг переменных класса и учитывание наследования

Как это не может? может. может члены класса, может проперти, может наследование и даже наследования от С++ классов.

#97
17:09, 5 ноя. 2011

RPG
> Метатаблицы, я же написал в пред. посте.
я имею введу какими свойствами они обладают.
MATov
> Как это не может?
ну например
class som
{
public: int a;
}
зарегать а может? (может я просто плохо искал в нете)
MATov
> может наследование и даже наследования от С++ классов.
я имел ввиду передать в скрипт экзепляр класса наследника и он  вызовет вирт функцию
например
void some_func(GameObj lala)
{
    lala.DO();
}
а передаём мы такой функции не GameObj а его наследника с переопределённым методом DO  луа на этот счёт не возмущается?

#98
17:16, 5 ноя. 2011

Chaos_Optima
> у ас для этого есть any
Значит таки типизация динамическая, просто язык не определяет тип переменной из контекста, а требует чтобы вы его указали сами?

Chaos_Optima
> я имею введу какими свойствами они обладают.
Метатаблицы - это magick в lua.
Я их использую чтобы:
- реализовать упрощенную модель ООП
- поддерживать единый класс для всех объектов
- создавать цепи методов
- генерировать методы объекта динамически
- делать систему событий
- ставить ловушки на изменение параметров объекта
- эмулировать многопоточность
- перегружать стандартные операции
- делать классы
и ещё, ещё, ещё...

Тут всё, если не лень разбираться:
http://love2d.org/forums/viewtopic.php?f=5&t=2570

#99
17:27, 5 ноя. 2011

RPG
> просто язык не определяет тип переменной из контекста, а требует чтобы вы его
> указали сами?
ммм а резве это не определения языка со строгой типизацией?
в С++ тоже есть тип any называется void* или у C# Object но это не значит что он с динамической типизацией
RPG
> Я их использую чтобы:
прикольно

#100
17:40, 5 ноя. 2011

Chaos_Optima
> в С++ тоже есть тип any называется void* или у C# Object но это не значит что
> он с динамической типизацией
К сожалению, в си я должен со 100% точностью знать, что по этому void лежит, или хотя бы передать вторым параметром, иначе это будет как пальцем в небо. Луа же знает что это за тип переменной и позволяет определять его на лету.

#101
17:56, 5 ноя. 2011

Chaos_Optima
> зарегать а может? (может я просто плохо искал в нете)

конечно, второй раз пишу.

> я имел ввиду передать в скрипт экзепляр класса наследника и он вызовет вирт функцию

да, с этим тоже все в порядке, говорю же читай доку по luabind'у если интересно.

#102
19:36, 5 ноя. 2011

> я имел ввиду передать в скрипт экзепляр класса наследника и он вызовет вирт функцию
Такое пожелание жизненно необходимо с++ скриптам, но не всем прочим скриптовым языкам, т.к. там сама природа данных разная в нативе и вм.
Поэтому странно считать это преимуществом as :)

#103
21:23, 5 ноя. 2011

Pushkoff
> тип приведется автоматически
> и программисты на PHP сейчас с тобой сильно не согласны, если бы защита
> требовалась, то такого класса как программисты на PHP даже не появилось бы, но
> как ты видишь армия похапешников сейчас самая большая ибо язык прост
PHP говно, говорю как phpшер со стажем, и его приведение типов очень часто становится таким багом, который 2 человека пол дня ищут...
А сколько говнокода на php это вообще просто даже говорить не о чем...
По теме, скрипты это чисто личная штука, и тут скорее важен не язык, тут куда более важно то каким образом тебе в скрипте предоставляют доступ к требуемым тебе сущностям... Красивое API без лишней каши вот что нужно в скрипте... ИМХО универсальность губит скрипты.

#104
21:59, 5 ноя. 2011

Futurist
> ИМХО универсальность губит скрипты.
ну так а я о чем

Страницы: 16 7 8 912 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.