迭代宏中的联合类型

时间:2017-05-02 19:21:22

标签: crystal-lang

有没有办法在宏中的联合类型中迭代类型?这是我的尝试:

alias MyType = Int32 | String

{% for type in MyType.union_types %}  #=> undefined method 'union_types' for TypeNode of type MyType (must be a union type)
  ...
{% end %}

我尝试使用TypeNode#union_types方法,但似乎MyType根本不被视为联合类型:

{% puts MyType.union? %} #=> false

2 个答案:

答案 0 :(得分:1)

看起来目前无法在宏中使用复杂的别名类型。这是一个错误,请与您的示例碰撞crystal-lang/crystal#4301

答案 1 :(得分:0)

也许typeof方法可以帮助您

alias MyType = Int32 | String

puts typeof(MyType) # => (Int32 | String):Class

try here