Julia的一个很酷的功能是,值可以用作类型,至少可以用作类型参数。例如,可以断言数组具有特定的维数,例如x :: Array{Int,2}
。我的问题是:朱莉娅如何做到这一点,朱莉娅的用户如何获得这种权力?我认为这2
将被转换为或解释为的某种单例类型2
。我很好奇,知道该转换执行什么功能。我试图断言2 :: Type{2}
和isa(2, Type{2})
,但是只有在2
被实际类型替换时才断言一个单例。
您不能定义自己的不可变项并将它们用作单例类型(尚未)。
当前,static int valid_type_param(jl_value_t *v)
在jltypes.c中定义为true的任何东西都可以用作类型参数。有一个TODO可以添加更多类型,您可能只需要一个引人注目的用例即可获得有关更改行为的帮助。
更新:另请参见有关类型的手册:抽象类型和具体类型都可以通过其他类型和某些其他值(当前为整数,符号,布尔值和元组)进行参数化。当不需要引用或限制类型参数时,可以将它们完全省略。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句