gpt4 book ai didi

dust.js - 灰尘 : difference between logic sections {? } 和 {#}

转载 作者:行者123 更新时间:2023-12-04 10:52:37 26 4
gpt4 key购买 nike

{?}之间究竟有什么区别?和 {#} ?

——

经过一点测试,列出所有truthy/falsy values for {?} ,并将它们与 {#} 进行比较:

上下文 :

{
values: [
// false
'',
"",
false,
null,
undefined,
[],
// true
0,
"0",
"null",
"undefined",
"false",
{},
{a: 'a'}
]
}

模板 :
{#values}
{?.}true{:else}false{/.}
{/values}
{~n}
{#values}
{#.}true{:else}false{/.}
{/values}

它输出完全相同的结果:
falsefalsefalsefalsefalsefalsetruetruetruetruetruetruetrue
falsefalsefalsefalsefalsefalsetruetruetruetruetruetruetrue

——

它们之间真的有什么区别吗?

最佳答案

#之间有区别和 ? ,尽管它有点微妙并且不会在您的示例中显示出来。
? (存在):检查给定 key 的真实性。如果 key 为真,则执行主体,否则执行 :else body 如果有的话。
# (section):检查给定 key 的真实性。如果键为真,则将上下文设置为键,然后执行主体。如果上下文是一个数组,则为数组中的每个元素执行一次主体。如果 key 不真实,请不要更改上下文,并执行 :else body ,如果它存在。

所以,如果你的模板看起来像这样:

模板:

{?values}
{?.}true{:else}false{/.}
{/values}
{~n}
{#values}
{#.}true{:else}false{/.}
{/values}

那么你的输出将是:
true
falsefalsefalsefalsefalsefalsetruetruetruetruetruetruetrue

第一行检查 values存在,但不改变上下文。第二行检查当前上下文(在本例中为根上下文)是否存在,并打印 true .自 ?不进入上下文并循环遍历数组, true只打印一次。

关于dust.js - 灰尘 : difference between logic sections {? } 和 {#},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18184501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com