std.prog: INSTEAD программирование

Reply to: HCHRQPAPOVTYO3PG4AOP
From: Peter (syscall,1) 19.07.17 16:17 UTC
To: Wol4ik
Subject: Re: Чтобы избежать ошибок
> Аааа. Прошу прощеня, забыл очевидную вещь)))) если убрать return, но отобразятся сразу оба состояния. А return вернет нас просто в room, где об'ект фигурирует.
Дело в том, что есть такое понятие как метод,
Вот dsc - это метод. Когда движку нужно описание, он вызывает метод dsc у всех объектов комнаты. return тут это не возврат в комнату, а выход из функции. Например (это не инстед, просто lua):

====
function test()
   return 10
end
print(test()) -- выведет 10

function test2()
   return
end
print() -- выведет пустоту

====

А в инстеде p -- это просто накопление текста, например:

p "hello"

это то же самое, что return "hello"

Или так:

p "hello"
p "world"

то же самое, что и return "hello world"

Теперь про пример:

====
if s.burned then
   p "сгорел"
end
p "не сгорел"
====

будет "сгорел не сгорел"

а так:

====
if s.burned then
   p "сгорел"
   return  -- мы вышли из функции
end
p "не сгорел"
====

только одно состояние

Еще вариант:

====
if s.burned then
   p "сгорел"
else
   p "не сгорел"
end
====

Надеюсь, помог.
[31 / 61]