JASS Help

null

Специально обученный ноль, под который выделено ключевое слово null.

boolean

  • Для типа integer запрещено явно присваивать переменной или возвращать из функции

  • При передаче аргументом будет преобразован в false

function A takes boolean B returns boolean // local boolean C = null // Ошибка! Нельзя явно присваивать [[[null|]]] переменным с типом [[[boolean|boolean.html]]] if B == true then call ConsolePrint("Этот блок не сработает ибо [[[true|true.html]]] это единица") endif if B == false then call ConsolePrint("Этот блок сработает ибо [[[false|false.html]]] это ноль") endif if B == null then call ConsolePrint("Этот блок сработает ибо [[[null|]]] это ноль") endif // return null // Ошибка! Нельзя явно указывать [[[null|]]] возвращая [[[boolean|boolean.html]]] return false endfunction function main takes nothing returns nothing call A(null) // Передавая [[[null|]]] как [[[аргумент|arguments.html]]] он будет превращён в [[[false|false.html]]] endfunction

integer

  • Для типа integer запрещено явно присваивать переменной или возвращать из функции

  • При передаче аргументом будет преобразован ноль

function A takes integer B returns integer // local integer C = null // Ошибка! Нельзя явно присваивать null переменным с типом [[[integer|integer.html]]] call ConsolePrint([[[I2S|i2s.html]]](B)) // В консоль выведется ноль if B == 0 then call ConsolePrint("Этот блок сработает ибо [[[null|]]] приведён к нулю") endif if B == null then call ConsolePrint("Этот блок сработает ибо [[[null|]]] приведён к нулю") endif // return null // Ошибка! Нельзя явно указывать [[[null|]]] возвращая [[[integer|integer.html]]] return 0 endfunction function main takes nothing returns nothing call A(null) // Передавая [[[null|]]] как [[[аргумент|arguments.html]]] он будет превращён в ноль endfunction

real

  • Для типа real запрещено явно присваивать переменной или возвращать из функции

  • При передаче аргументом будет преобразован ноль

function A takes real B returns real // local real C = null // Ошибка! Нельзя явно присваивать null переменным с типом [[[real|real.html]]] call ConsolePrint(R2S(B)) // В консоль выведется ноль if B == 0.0 then call ConsolePrint("Этот блок сработает ибо [[[null|]]] приведён к нулю") endif if B == null then call ConsolePrint("Этот блок сработает ибо [[[null|]]] приведён к нулю") endif // return null // Ошибка! Нельзя явно указывать [[[null|]]] возвращая [[[real|real.html]]] return 0.0 endfunction function main takes nothing returns nothing call A(null) // Передавая [[[null|]]] как [[[аргумент|arguments.html]]] он будет превращён в ноль endfunction

string

  • Для строк разрешено явное присвоение переменной или возврат из функции

  • При передаче аргументом будет передан без преобразования

  • Запрещено явно использовать при конкатенации

function A takes string B returns string local string C = null // Разрешено явно присваивать [[[null|]]] переменным с типом [[[string|string.html]]] call ConsolePrint(B + C) // В консоль выведется пустая строка if B == null then call ConsolePrint("Этот блок сработает так как передан [[[null|]]]") endif if B == "" then call ConsolePrint("Этот блок не сработает из-за особенностей [[[таблицы строк|string.html#table]]]") endif // call ConsolePrint(null + "Ошибка! Нельзя явно использовать [[[null|]]] при конкатенации") return null // Разрешено явно указывать [[[null|]]] возвращая [[[string|string.html]]] endfunction function main takes nothing returns nothing call A(null) // Передавая [[[null|]]] как [[[аргумент|arguments.html]]] он будет передан как [[[null|]]] endfunction

handle

  • Для типов наследующих handle разрешено явное присвоение переменной или возврат из функции

  • При передаче аргументом будет передан без преобразования

function A takes location B returns location local location C = null // Разрешено явно присваивать [[[null|]]] переменным с типом наследующим [[[handle|handle.html]]] call ConsolePrint([[[I2S|i2s.html]]](GetHandleId(B))) // В консоль будет выведен ноль, так как объект не создан if B == null then call ConsolePrint("Этот блок сработает так как передан [[[null|]]]") endif return null // Разрешено явно указывать [[[null|]]] возвращая тип наследующий [[[handle|handle.html]]] endfunction function main takes nothing returns nothing call A(null) // Передавая [[[null|]]] как [[[аргумент|arguments.html]]] он будет передан как [[[null|]]] endfunction
Last modified: 22 October 2024