rust的几种变量传递语义

  • Borrow
  • Move
  • Copy
  • Clone

以一个具体的例子来讲明这几种不一样。 小明是巧克力仓库管理员。他有一个门卡,能够用来开仓库的门,而且门卡上印有管理员信息;小李是小明的朋友。工作

Borrow

一天,小李找小明说,你把仓库的门卡借给我呗,小明说:“行。可是你不能把卡上的信息改了”。小李说好。小李用完了,而后还给了小明。ps

mut borrow

有一天,小明发现卡上的名字印错了。因而他跟小李说,你帮我把卡上的名字改正确呗。小李说好。 因而,小明把卡片借给了小李,小李帮小明把卡片上的名字改好,而后小李把卡片还给了小明。管理

Move

小明因为工做表现突出,领导决定让他管葡萄干的仓库,再也不管巧克力仓库了,而且派小李接替小明的工做。 因而,小明把巧克力仓库的门卡交给小李。今后,小明再也不拥有巧克力仓库的门卡,小李成了巧克力仓库门卡的拥有者。

Copy

最近吃巧克力的人忽然变多,仓库的工做一会儿忙起来。小李一我的管不过来。 因而领导让小明来帮忙,也就是小明和小李一同管理巧克力仓库。但门卡只有一张,两我的用起来很不方便。 因而照着原来的门卡,制做了一张如出一辙的门卡给了小明。今后,两我的每人都有一张门卡了。 固然,小明拿到卡就能够把卡片上的名字改为了本身的。

ps: 此状况暂时不考虑用门卡开仓库门的状况。

Clone

吃巧克力的人愈来愈多,一个仓库已经应付不来了。领导决定新建一个和原来同样的巧克力仓库,让小李管旧仓库小明管新仓库。 因而给小明发了一张新仓库的门卡。

相关文章
相关标签/搜索