/

动态类型

Quarkdown 是动态类型的:每一个可能被传递给函数参数的值,都被包裹在一个 DynamicValue 对象中。这个对象可以表示任何受支持的类型,并且携带着在需要时将其转换为期望类型所需的信息。

随后,这个动态值会在调用时被适配或转换为原生函数(用强类型的 Kotlin 编写)签名所期望的类型。如果无法完成转换,就会发生错误。

这种在调用时进行适配的机制减少了限制,使得同一个值可以根据其上下文而被不同地处理。

示例 1

.var {myvar} {true}

.if {.myvar}
    My value is .uppercase {.myvar}

My value is TRUE

在上面的示例中:

请参阅本维基的值类型章节,了解所有受支持的类型。

示例:源 + 结果

下面的示例是本维基中定义的一个函数的简化版本,它展示了一段 Quarkdown 代码片段及其正下方的可视化结果:

示例 2

.function {sourceresult}
    source:
    .code {markdown}
        .source
    .source

.sourceresult
    ##! Quarkdown 

    Quarkdown was born in **.sum {2000} {24}**
##! Quarkdown 

Quarkdown was born in **.sum {2000} {24}**

Quarkdown

Quarkdown was born in 2024

前面的示例展示了 Quarkdown 的值是多么通用。在函数声明中,.source 参数被获取了两次: