在这一章中,我们将探讨 Cairo 中的基本类型的类型转换。
类型转换
Cairo 利用 Into 和 TryInto 特质(Trait)提供了一种安全的类型转换机制,可以在整数类型(u8、u16等)和 felt252 之间进行转换。你首先需要导入这些特质:
into()
Into 特质提供了 into() 方法,用于在保证成功的情况下进行类型转换。从较小到较大类型的转换是保证成功的,例如 u8 -> u16 -> u32 -> u64 -> u128 -> felt252。在使用 into() 时,必须注明新变量的类型。
try_into()
TryInto 特质提供了 try_into() 方法,在目标类型可能无法容纳源值时进行安全的类型转换。这通常发生在从较大转换到较小类型时:u8 <- u16 <- u32 <- u64 <- u128 <- felt252。try_into() 方法返回一个 Option 类型,你需要调用 unwrap() 方法来获取新值。与 into() 类似,在使用 try_into() 时,必须明确注明新变量的类型。
总结
在这一章中,我们介绍了 Cairo 中的类型转换。当转换保证成功时,应该使用 into() 方法;对于无法保证成功的情况,应使用 try_into() 方法。