欢迎光临散文网 会员登陆 & 注册

关于数据类型中值类型、引用类型、location问题的简化版

2023-02-22 07:18 作者:东风草绿  | 我要投稿

如果你不关心数据类型中值类型、引用类型、location问题的分析过程,可以记住以下几条规,也够简单。但在说出这个规则之前我们先要对问题做一个转化:值类型和引用类型区别的全部意义,就在于赋值操作时发生的是值拷贝还是引用拷贝。所以我们只需要考察变量赋值操作就可以了

      一个赋值操作:

     x = a

    其中x是被赋值的变量,在赋值操作符的左侧,a是赋值变量,在赋值操作符的右侧。我们的规则是:

  1. 如果x是成员变量,值拷贝,否则:

  2. 如果x与y的location相同,引用拷贝,否则:

  3. 如果x的location是calldata,出错;如果x的location不是calldata,值拷贝。

这是完整的逻辑,没有遗漏的情况。整理出这个规则的关键在于问题的还原,还原为赋值操作的问题。有时一个问题看上去复杂,是因为我们的叙述方式干扰了我们自己。



关于数据类型中值类型、引用类型、location问题的简化版的评论 (共 条)

分享到微博请遵守国家法律