Skip to main content

17. 类型转换:整数,浮点数与字符串

调用内置方法时,会对变量类型进行检查,并会对参数进行隐式类型转换,转换优先级是byte<int<float。

显示类型转换是通过伪函数实现,yak内置了一些伪函数,包括int、bool、float、byte、string、var,可以通过这样int(true)这种方式实现类型的转换,值得一提的是,这些方法支持对字符串变量的解析。

// 强制转换可简单通过 type(...) 直接转换a = "123"aInt = int(a)/*    aInt 为 (int) 123*/

具体类型转换方案如下:#

原类型\目标类型intboolfloatbytestringvar
int-非0为真直接转,无信息丢失可能会有信息丢失等同于 sprintf("%d",num)-
bool真为1,假为0-真为1,假为0真为1,假为0"true"和"false"-
float只保留整数部分非0为真-只保留整数部分等同于 sprintf("%f",num)-
byte直接转,无信息丢失非0为真直接转,无信息丢失-等同于 sprintf("%d",num)-
string解析字符串内的数据,失败则会panic同左同左同左--
varvar类型变量可以储存任意类型数据,可以通过强制类型转换转回原类型同左同左同左同左-