Вы можете сделать это, используя Mata.
local try "a b c"
mata: st_local("try2", invtokens("d" :+ tokens(st_local("try"))))
assert "`try2'" == "da db dc"
В словах, это то, что делает вторая линия, объясняя самую внутреннюю функцию первого:
st_local("try")
: доступ к содержимому в локальной переменной. Это должно оцениваться как «a b c».
tokens("a b c")
: Разделите строку на токены, например. tokens("a b c")
->("a", "b", "c")
.
"d" :+ ("a", "b", "c")
: В Мате, вы можете конкатенации строк с +
, а вот :+
делает этот поэлементно, так что результат будет («да», «БД», постоянным ток ")
invtokens(("da", "db", dc"))
:. Поместите жетоны обратно в строку, т.е. invtokens(("da", "db", dc"))
->"da db dc"
st_local("try2", "da db dc")
:. Мат эквивалент local try2 "da db dc"
Вы можете узнать больше о Мате функции st_local()
, tokens()
и invtokens()
с, например. , help mf_st_local
.
Большое вам спасибо, это хорошо решает мою проблему. :) – sxgn
@sxgn Если это поможет, вы можете выбрать это как ответ, используя галочку слева. –