Crystal不会为工会做自动推断类型吗?

时间:2019-11-15 10:45:20

标签: crystal-lang

当我在Crystal和StringInt32中使用类型联合时,然后为它分配了一个值,它可以正常工作

test : (String | Int32) = 100
puts "Hello, World! #{test}"

结果

~/Projects/learn-crystal  crystal hello.cr
Hello, World! 100

但是,当我将Int32更改为UInt32时,它将变成错误

test : (String | UInt32) = 100
puts "Hello, World! #{test}"

结果

~/Projects/learn-crystal  crystal hello.cr
Showing last frame. Use --error-trace for full trace.

In hello.cr:1:1

 1 | test : (String | UInt32) = 100
     ^---
Error: type must be (String | UInt32), not Int32

但这很好用

test : (String | UInt32) = 100_u32
puts "Hello, World! #{test}"

结果

~/Projects/learn-crystal  crystal hello.cr
Hello, World! 100

为什么Crystal不会自动推断一个整数和字符串类型的并集?

0 个答案:

没有答案