![]()
Celebrate
![]() ![]() offline
Опыт:
849Активность: |
constant function
Что ето такое и с чем это едят? :)
Чем отличается от обычных function? |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
Для удобства, отличаются тем что не изменяются, это константы. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
zibada
![]() offline
Опыт: отключен
|
функции, которые не вызывают внутри себя никаких не-constant функций.
(т.е. при нескольких вызовах с одинаковыми аргументами возвращают одинаковое значение..) вроде так. например (из common.j): OrderId - константа, т.к. результат зависит только от аргумента, и ни от чего еще. а вот CreateUnit очевидно, не константа, т.к. возвращаемое значение (handle нового юнита) всякий раз новое. зачем это надо, и есть ли от этого какой-то видимый эффект - вопрос открытый =) |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
83,712Активность: |
Гм, обычно константные функции сродни макроопределениям, однако как это inJass - хез |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Медведь
ФффыррфррфффФФфф!
![]() ![]() offline
Опыт:
21,702Активность: |
По моему константные функции это функции которые просто возвращают значение - не берут аргументов и ничего не рассчитывают. То есть в них напрямую указано
return Код:
90 процентов что я неправ. Хотя хз |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
zibada
![]() offline
Опыт: отключен
|
конечно, неправ..
from common.j: Код:
и т.д. хм.... там же увидел интересные вещи... Код:
м.быть, это функции, результат которых при тех же аргументах не меняется на протяжении работы потока? как-то эти строчки немного озадачили... |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Celebrate
![]() ![]() offline
Опыт:
849Активность: |
А кто-нибудь на оффициальном сайте близзов зареген? (там ведь без лецензионного диска не зарегишся :cry: ) Спросите, авось снизойдут близзы до простых смертных джассеров :) |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
А )(4<'> тебе на офф сайте близов джазом не занимаются.
Там вооще безполезно что-либо писать. DioD добавил: Любителям констант надо поискать JESP стандарт, там написано что к чему. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Celebrate
![]() ![]() offline
Опыт:
849Активность: |
DioD на офф сайте близзов не отвечают на вопросы по jass-у?
На кой тогда они этот сайт открывали?! |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
Celebrate на АСМ некоторые операнды только с константыним значениями работают...
лично меня этот вопрос тоже уже давно интересует ! я думаю что константы легче вычесляютьса т.е. дают минимум + производительности... хотя это догадка поэтому я РБ функции все конс. сделал. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
Лично я понял что константы обсчитываются один раз и зависают в памяти навсегда, таким образом даётся макс производительность. |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
DioD ага ?! типа РБ ссылка такой функ. будет всегда одной и тоже
![]() |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
vlad_C0M
Босс DarkSkyTeam
![]() ![]() offline
Опыт:
10,459Активность: |
Toadcop : lol И возвращать будет всегда одно и тоже :D
|
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FellGuard
Losyash
![]() ![]() offline
Опыт:
39,547Активность: |
Ниче особо вразумительного по константам не скажу, знаю только, что в спеллах удобно выносить константы вверх, и потом уже в коде спелла к ним обращаться. Хез, зачем это надо, очевидно для удобства изменения параметров спелла, типа имитация полей ОЕ, не знаю, правда, можно ли потом это как-то туда вживить. |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
mr DOS
![]() offline
Опыт:
50Активность: |
Если общая концепция языка близка к C++ то атрибут constant будет ИМХО иметь то же значение что и const для функции-элемента класса в си. То биш функция в процессе работы не меняет никаких полей объекта или переменных игры. |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
В эти функция нельзя добавлять действия или условия, а переменные объявленые константами невозможно изменить. |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
Цитата:
|
|
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
Зачем делать функции динамическими если они не меняются, вот и весь смысл. |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
exploder
iOS zealot
![]() ![]() offline
Опыт:
19,394Активность: |
Может пережиток констаных методов классов си? Типа для все объектов... |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
Запросто, особенно если учесть на чём основан джаз и написана игра. |
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|