我有这是我的代码:
tasks.withType(com.android.build.gradle.tasks.ExternalNativeCleanTask) {
it.actions.clear()
doLast {
project.delete("${projectDir}/.externalNativeBuild")
}
}
我希望结果是class Template
def initialize(temp_str)
@str = temp_str
end
def render options={}
@str.gsub!(/{{/,'#{options[:').gsub!(/}}/,']}')
puts @str
end
end
template = Template.new("{{name}} likes {{animal_type}}")
template.render(name: "John", animal_type: "dogs")
,但它是
John likes dogs
为什么#{options[:name]} likes #{options[:animal_type]}
不进行插值?
答案 0 :(得分:4)
if (data.Things.Count != 0)
{
var ans = new List<QuestionModel>();
ans = data.Things.Select(item =>
{
return new QuestionModel()
{
QuestionId = Convert.ToInt32(item.Key),
AnswerId = Convert.ToInt32(item.Value),
};
}).ToList();
}
不是每当它发生时转换为插值的魔法。这是用于插值的文字语法。在这里你不是字面意思,你可以通过替换得到它。相反,你可以做类似的事情:
#{}
这会捕获胡须中的名称并使用它为哈希编制索引。
更好的方法是利用现有的format functionality。而不是胡须,使用template = "{{name}} likes {{animal_type}}"
options = {name: 'John', animal_type: 'dogs'}
template.gsub(/{{(.*?)}}/) { options[$1.to_sym] } # => "John likes dogs"
:
%{}