我有一个与此类似的语言环境对象:
cf push <app_name> -c "<original_command> ;sleep 1d"
我想添加一个函数,它只是简单地返回一个sprintf'ed版本的字符串,该字符串被“调用”来自对象,可以像L = {
message: {
hello: "Hello %s!",
goodbye: "Farewell %s!"
}
error: {
notfound: {
title: "Can't find %s!",
text: "But just where did I put it?"
}
}
}
一样使用,这与某些魔法会像{{return L.message.hello("Ivan")
一样1}}。
经过一番研究,我知道这一点:
return sprintf(L.message.hello,"Ivan")
来实现。__callStatic
看起来很可怕。sprintf(L.message.goodbye,"Ivan")
实际上有效!但我觉得它有点不够宽大。有没有办法让优雅和简单的实施变得可行?
答案 0 :(得分:1)
答案 1 :(得分:0)
即使在Ruby on Rails中,我们也常常做同样的事情,除此之外,我们有一个专门的功能。在RoR中,我们这样做:
_(messages.config.say_hello, current_name)
同样,您可以执行以下操作:
_ = sprintf;
_(L.message.goodbye,"Ivan");
你可以通过100种方式做到。 :)