![]() |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
Как ты себе представляешь статичные константы? Константа сама по себе статична, на то это и константа. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
В C# например нету оператора Method или Function. Объявление функции и её роль зависит от её значений перед, например в классе:
Код:
public string Name () { А вот: Код:
public static string Name () { Код:
public class TUser { А функция Name, в понятии бм - это метод. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Объясните нубу:
1) Почему переодически отключается возможность копипастирования кода в стандартном IDE? 2) Код:
Type TMaterial |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Измени "Method Create:TMaterial(image :TImage)" на "Function Create:TMaterial(image :TImage)"
Выше как раз описана разница между методом и функцией типа. Насчёт копипаста не скажу, сразу установил blide. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
1) Типы внутри типов использовать МОЖНО., естественно, обьявить новый тип в теле другого типа никто вам не даст. А вот такая запись вполне допустима :
Код:
Type TCar 2) Насчет статичных функций. Всегда считал, что с приходом методов они стали атавизмом. Ну нету таким функциям рационального использования и все тут! Единственное что они привносят - так это путаницу, и нечитабельность кода. Более того они не являются частью ООП. Многие новички любят делать такими функциями конструкторы и деструкторы, но вот только с точки зрения ООП - это все равно, что загнать себя в угол и кричать потом от безисходности и нечитабельности кода. Да и еще, статичные функци начинают "по настоящему" мешать, если речь идет о развитии и поддержке кода, так как они убивают само понятие "наследования" читай ООП. 3) Отсюда вывод -> Никаких функций в типах. Конструкторы и деструкторы можно легко сделать на методах. Код:
Type TVector Код:
Код:
Type TParent ЗЫ : Хотя, некоторые БМаксеры считают это небезопасным маневром в плане уборки мусора. ПРАВКА : Насчет полей я был не прав. Их можно только переопределить. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
А какой может быть практический смысл использования "типа в типе"? Или это просто разработчики языка не доглядели и теперь можно делать такой странный "хак"?..
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Почитай что нибудь про ООП. Многое станет ясно.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Это скорость.
Вообще все типы, методы, функции, поля, переменные, константы - образуют собой дерево, которое заносится как я понимаю в стек (а может и по другому). И если допустим мы вызываем метод, тогда чем ближе какой-либо обьект лижет в ветке данного метода, тем быстрее произойдет поиск / вызов / операция. Код:
Global value:Int = 100 В одно время Oxid высказывал свое мнение по этому поводу : если в функции обьявить локальную переменную и назвать ее коротким именем, то есть шанс что переменная занесется в регистр процессора для мнгновенного доступа. Для глобальной функции приоритет приблизительно таков : аргументы->локальные переменные->глобальные переменные. Для метода : аргументы->поля->локальные переменные->глобальные переменные внутри типа->глобальные переменные. С вызовом функций и методов тоже самое, если какая либо функция вызывается много раз внутри другой - то лучше сделать эту функцию приватной. А если рассматривать целиком весь БМакс, то он весь состоит из чунков (порций кода), - отсюда его модульность. По идее глобальную функцию (и не только ее) можно вызвать класически : DrawImage(image,x,y,0) А можно явно указать с какого чунка вызвать функцию : brl.max2d.DrawImage(image,x,y), в той же степени это относится ко всему остальному. Хотя на самом деле компилятор на стадии формирования кода все вызовы приводит ко второму виду. Для пытливых - можно пойти еще дальше : brl.max2d.TImage(image).Frame(0).Draw(...) - но это уже черезчур =) |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Запускаю блицмакс, а он выдает ошибку "Unable to determine BlitzMax version. Please, reinstall BlitzMax to repair this problem". Это че за хрень?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Пожалуйста, переустанови BlitzMax, чтобы исправить эту проблему.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо, кэп. Переустановил, то же самое.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
У тебя Widows?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
К сожалению, да. Поставил Blide, заработало.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Есть List, в нём несколько int. Проходим по нему For..Each'ем - MAV - пишет, что индекс цикла (который, естественно, тоже int) должен быть объектом. Разве Int это не тип?
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
А вот String пожалуйста. Можешь делать так: Код:
Local str:String |
Часовой пояс GMT +4, время: 00:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot