Есть ли какое-либо правило именования переменных или функций? Например, как назвать эту функцию?
function KillUnit takes unit target, unit hurter returns boolean
        return UnitDamageTarget(hurter, target, (GetUnitState(target, UNIT_STATE_MAX_LIFE) * 2), true, false, null, null, null)
    endfunction

Принятый ответ

название KillUnit не совсем подходит
я бы назвал killUnitFromUnit или просто killFromUnit
Пушистый, а можно проще
define KillUnit(a) = KillUnit2(a)
по поводу правил
название должны соответствовать выполняемой функции
например если логическая переменная хранит жив юнит или нет то называться она должна isAlive или как то так
+ различные правила написания для различных языков
например в java первое слово в названии функции/переменной пишется с маленькой буквы а остальные с большой, а в названиях классов все слова с большой
в jass официальных соглашений нету но близы писали в функциях каждое слово с большой а константы большими буквами разделяя слова _
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
16
7 лет назад
0
Функция твоя. Хоть "горшком" назови и в печку поставь.
0
21
7 лет назад
0
Naadir, можно, но так ты не поймешь, что делает эта функция)
0
16
7 лет назад
Отредактирован Naadir
0
ScopteRectuS:
Ну блин, что всё так сложно-то?
Если возвращает булку, значит идёт какая-то проверка, какое-то условие, у тебя есть главная функция, в даннос случае она про урон. Назови "PairCheckDamage" или что-нибудь в этой роже.

Хорошо, как тебе такое правило: переводишь на английский смысл (Check, Number, Capacity...) твоей функции и приписываешь к нему смысл того, что в ней содержится?
0
16
7 лет назад
0
google -> правила именования переменных
с вероятностью 99.9% никто, кроме тебя, этот код всё равно читать не будет.
0
13
7 лет назад
0
Использование define решит данную проблему. Так как функция KillUnit существует и она находится в common.j, то можно прописать:
define{
	<call KillUnit> (whichUnit) = KillUnit2(whichUnit)
	<KillUnit> (whichUnit) = KillUnit2(whichUnit)
}
В название своей функции поставь число 2 и можно использовать просто KillUnit, но компилятор при ее использовании будет подразумевать совершенно другую, а именно твою функцию (KillUnit2).
0
28
7 лет назад
Отредактирован nvc123
0
название KillUnit не совсем подходит
я бы назвал killUnitFromUnit или просто killFromUnit
Пушистый, а можно проще
define KillUnit(a) = KillUnit2(a)
по поводу правил
название должны соответствовать выполняемой функции
например если логическая переменная хранит жив юнит или нет то называться она должна isAlive или как то так
+ различные правила написания для различных языков
например в java первое слово в названии функции/переменной пишется с маленькой буквы а остальные с большой, а в названиях классов все слова с большой
в jass официальных соглашений нету но близы писали в функциях каждое слово с большой а константы большими буквами разделяя слова _
Принятый ответ
0
32
7 лет назад
0
Конечно есть, имя функции не должно повторятся и совпадать с именами из common.j и blizzard.j.
0
28
7 лет назад
0
DracoL1ch, бывает так что когда что то делаешь вспоминаешь что нечто похожее делал несколько месяцев назад и можно просто скопипастить оттуда кусок но для этого нужно понять какой кусок копипастить и что в нём поменять чтобы всё работало
давным давно когда я называл переменные в алфавитном порядке у меня была с этим куча проблем
0
16
7 лет назад
0
ну у меня стиль сильно скакал, в зависимости от года, но прочитать старое обычно не было проблемой. А локалки - однобуквенный алиас, unit -> u, trigger -> t, timer (if trigger exists) -> tt, integer i, eventid eid, etc
2
30
7 лет назад
2
На хайве на основе naming convention, принятого в гугле (по С++) и того, как писали код сами близы признан общим стандартом следующий подход к именованию:
ModuleName
StructName
LibraryName
ScopeName
FunctionName
methodName
variableName		// Любые, использование цифр допускается везде, кроме первого символа.
CONSTANT_NAME		// Использование цифр допускается везде, кроме первого символа.
DEFINED_VALUE		// Кроме перехвата функций.

// Знаки "=", "+" и "-" выделяются с обеих сторон пробелами, "*" и "/" не выделяются.
x = 1 + 1*3 - 6/2*6

// Скобки всегда ставятся максимально близко к содержащемуся в них выражению.
y = num1*((num2 - CONSTANT_1)/num3) + num2/num1

// Отступ при увеличении вложенности - 4 пробела.

// Операторы сравнения выделяются пробелами с обеих сторон.
// Пробелами отделяются "if"/"elseif" и "then" от условия между ними.
// Логические операторы "not", "and" и "or" также обособляются с обеих сторон.
// Каждое условное ветвление размещается на новой строке.
if (num1 == num2) and not (num2 < num3) then
	// ...
elseif (num1 != num2) or (num2 > num3) then
	// ...
else
	// ...
endif
return (num1 == num2) and not (num2 < num3)
0
16
7 лет назад
0
ох и ярость берет за эти "правила", писанные как для взрослых. особенно умиляют 4 пробела. Хоспади, когда же наступит будущее, где табы будут во всех редакторах одинаковыми.
0
28
7 лет назад
0
где табы будут во всех редакторах одинаковыми.
мечтай
бывают даже пробелы разного размера
боюсь даже представить что лет через 10 придумают
0
15
7 лет назад
0
Так как по работе приходиться придерживаться naming conventions от Майкрософта, то обычно использую их и в Жассе.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.