В отличии от скрипта функция знает своё имя
Добавлено: 24 сен 2020, 18:37
Получить имя исполняемого скрипта из самого скрипта не возможно, если только он не создан под уникальным юзером. viewtopic.php?f=14&t=11331
А функция может узнать своё имя. Иногда это бывает полезно, например, чтобы выдать в лог сообщение об ошибке или отчитаться в Телеграмм о своей работе.
Получить имя функции из самой функции можно вот так:
:put [:pick $0 1 [:len $0]]
То есть, оно всегда хранится в нулевом аргументе функции.
Проверим:
:global FuncTest do={
:local name [:pick $0 1 [:len $0]]
:log info $name
}
[$FuncTest]
В логе будет имя FuncTest
Интересно, что функция может сама и "испортить" своё имя. Например так:
:global FuncTest do={
:local name [:pick $0 1 [:len $0]]
:log info $name
:set $0 "Newname"
:log info $0
}
Но в окружении остаётся старое имя функции и порча его в аргументе вероятно не сказывается на последующей работе.
А функция может узнать своё имя. Иногда это бывает полезно, например, чтобы выдать в лог сообщение об ошибке или отчитаться в Телеграмм о своей работе.
Получить имя функции из самой функции можно вот так:
:put [:pick $0 1 [:len $0]]
То есть, оно всегда хранится в нулевом аргументе функции.
Проверим:
:global FuncTest do={
:local name [:pick $0 1 [:len $0]]
:log info $name
}
[$FuncTest]
В логе будет имя FuncTest
Интересно, что функция может сама и "испортить" своё имя. Например так:
:global FuncTest do={
:local name [:pick $0 1 [:len $0]]
:log info $name
:set $0 "Newname"
:log info $0
}
Но в окружении остаётся старое имя функции и порча его в аргументе вероятно не сказывается на последующей работе.