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