Есть ли какое-либо правило именования переменных или функций? Например, как назвать эту функцию?
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 официальных соглашений нету но близы писали в функциях каждое слово с большой а константы большими буквами разделяя слова _
`
ОЖИДАНИЕ РЕКЛАМЫ...
16
Функция твоя. Хоть "горшком" назови и в печку поставь.
21
Naadir, можно, но так ты не поймешь, что делает эта функция)
16
ScopteRectuS:
Ну блин, что всё так сложно-то?
Если возвращает булку, значит идёт какая-то проверка, какое-то условие, у тебя есть главная функция, в даннос случае она про урон. Назови "PairCheckDamage" или что-нибудь в этой роже.

Хорошо, как тебе такое правило: переводишь на английский смысл (Check, Number, Capacity...) твоей функции и приписываешь к нему смысл того, что в ней содержится?
16
google -> правила именования переменных
с вероятностью 99.9% никто, кроме тебя, этот код всё равно читать не будет.
13
Использование define решит данную проблему. Так как функция KillUnit существует и она находится в common.j, то можно прописать:
define{
	<call KillUnit> (whichUnit) = KillUnit2(whichUnit)
	<KillUnit> (whichUnit) = KillUnit2(whichUnit)
}
В название своей функции поставь число 2 и можно использовать просто KillUnit, но компилятор при ее использовании будет подразумевать совершенно другую, а именно твою функцию (KillUnit2).
28
название KillUnit не совсем подходит
я бы назвал killUnitFromUnit или просто killFromUnit
Пушистый, а можно проще
define KillUnit(a) = KillUnit2(a)
по поводу правил
название должны соответствовать выполняемой функции
например если логическая переменная хранит жив юнит или нет то называться она должна isAlive или как то так
+ различные правила написания для различных языков
например в java первое слово в названии функции/переменной пишется с маленькой буквы а остальные с большой, а в названиях классов все слова с большой
в jass официальных соглашений нету но близы писали в функциях каждое слово с большой а константы большими буквами разделяя слова _
Принятый ответ
32
Конечно есть, имя функции не должно повторятся и совпадать с именами из common.j и blizzard.j.
28
DracoL1ch, бывает так что когда что то делаешь вспоминаешь что нечто похожее делал несколько месяцев назад и можно просто скопипастить оттуда кусок но для этого нужно понять какой кусок копипастить и что в нём поменять чтобы всё работало
давным давно когда я называл переменные в алфавитном порядке у меня была с этим куча проблем
16
ну у меня стиль сильно скакал, в зависимости от года, но прочитать старое обычно не было проблемой. А локалки - однобуквенный алиас, unit -> u, trigger -> t, timer (if trigger exists) -> tt, integer i, eventid eid, etc
30
На хайве на основе 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)
16
ох и ярость берет за эти "правила", писанные как для взрослых. особенно умиляют 4 пробела. Хоспади, когда же наступит будущее, где табы будут во всех редакторах одинаковыми.
28
где табы будут во всех редакторах одинаковыми.
мечтай
бывают даже пробелы разного размера
боюсь даже представить что лет через 10 придумают
15
Так как по работе приходиться придерживаться naming conventions от Майкрософта, то обычно использую их и в Жассе.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.