【问题标题】:What are aliases in vibe.d's Diet templates?vibe.d 的饮食模板中的别名是什么?
【发布时间】:2014-04-29 18:41:15
【问题描述】:

我可以在 Vibed 的 Diet 源代码中看到 void compileDietString(string diet_code, ALIASES...)(OutputStream stream__) 函数。

我看到它需要无限数量的别名作为模板参数。

这些别名是什么?我很难通过源代码弄清楚,它使用了很多我不太了解的概念,例如特征和混合。

【问题讨论】:

    标签: d vibed diet


    【解决方案1】:

    这些参数是从renderrenderCompat 传递过来的。来自the documentation of renderCompat

    所有以下参数必须是类型和字符串对,每个参数指定一个参数。参数值可以作为与模板参数指定的类型相同的值传递,也可以作为存储了相同类型的 Variant 传递。

    例子:

    string title = "Hello, World!";
    int pageNumber = 1;
    res.renderCompat!("mytemplate.jd",
        string, "title",
        int, "pageNumber")
        (title, pageNumber);
    

    【讨论】:

    • 我仍然不明白它是如何工作的。最后所有这些变量的意义是什么?如何解释它们?完整的文档也不使用对:render!("userinfo.jd", username)(res); ~ vibed.org/docs#http-routing
    • render 不是renderCompatrender 使用编译时自省来查询标识符类型和名称。在renderCompat 中,它们是明确指定的。
    • 哦,我现在明白了,所以对于常规函数,您可以只传递变量吗?谢谢。
    • 将这些变量提供为别名的目的是在嵌入式 D sn-ps 中将它们暴露在渲染的 Diet 模板中。
    猜你喜欢
    • 2011-04-27
    • 2017-04-28
    • 1970-01-01
    • 2018-03-01
    • 2013-03-27
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多