SV的类型转换

1. 静态转换

  • 在需要转换的表达式前面加单引号。但这种方式不会对转换值做检查,如果转换失败,系统也不会报错。
  1. byte a;
  2. b=int'(7);

2. 动态转换

  1. 动态转换需要调用系统函数**$cast(tgt,src)**做转换,把src转换成tgt的类型。
  2. 类句柄的向下转换:$cast()会检查句柄所指向的对象的类型,而不是检查句柄本身;
  • 子类句柄赋值给父类句柄(也就是将子类句柄拷贝成父类句柄),编译器认为合法。
  • 父类句柄拷贝给子类对象,需要使用$cast检查句柄所指向的对象类型,一旦源对象跟目的对象是同一类型,就可以从父类句柄拷贝子类对象的地址给子类句柄。

  • 当$cast作为任务来使用时(直接调用,不需要返回值时),如果转换失败会给出一个错误报告。
  • 当$cast作为函数使用时(需要返回值),转换失败返回0,不给出错误报告。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值