< 返回版块

damody 发表于 2019-04-20 16:54

Tags:rust

12個rust殺手級程式庫

這個作者介紹了一下新手應該知道的庫

Read more

3D Ascii 藝術產生器

img

https://preview.redd.it/p3nlqakx2bt21.gif

Read more

一位群友不了解編譯器的教導,Mike大幫幫解釋

img 请问,以这样的方式来获取枚举内部的值,这个state得到的是一个引用,那么该值的所有权属于谁?是枚举实例a吗?

Rust语言社区Mike 2019/04/19 07:43:24

是,因为他是copy的,复制了一份

求学上 2019/04/19 09:46:28

谢谢,请问您这里的copy指的是?我认为是Coin::Quarter(state),这里声明了一个临时

变量state,之后state借出Coin.Quarter的具体值。最后返回该引用。也就是所有权一直是

没有改变的。之后,这里说,Quarter的参数是一个US_State的实例,那么这里是发生

了移动吗?也就是Coin.Quarter的值的所有权被state夺走了?这里不是很明白

Rust语言社区Mike 2019/04/19 09:50:27

@求学上 编译器的意思是你传错了,上面枚举直接传枚举进去就行了,不需要传借用

Rust语言社区Mike 2019/04/19 09:51:10

能否把编译截图完整?

求学上 2019/04/19 09:51:18

是的,我之前是传枚举进去。确实取出了值数据。稍等

求学上 2019/04/19 09:51:40

img

img

Rust语言社区Mike 2019/04/19 09:53:35

那就是写错了啊

求学上 2019/04/19 09:54:16

因为不是很明白这里的所有权转移,所以我在做测试。按照我目前所理解的,

Quarter(state)这里,是发生了移动,match返回值时我既可以返回一个引用或者再次发生

移动。但是如果按照我这样理解的话,取出这个值会使得原来的数据丧失所有权而不可用。

Rust语言社区Mike 2019/04/19 09:54:52

&Coin::Quarter(state) 这样应该也可以

求学上 2019/04/19 09:55:36

嗯嗯,我再试试。不知道我上面的理解对不对/小纠结

Rust语言社区Mike 2019/04/19 09:56:06

你拿这个例子测试所有权转移没有用

Rust语言社区Mike 2019/04/19 09:56:07

因为这个枚举是Copy的

求学上 2019/04/19 09:56:28

!enum居然是copy的/幽灵喵喵喵???

求学上 2019/04/19 09:56:47

/笑哭我没问题了。谢谢你/小纠结

Rust语言社区Mike 2019/04/19 10:01:28

/小開心

求学上 2019/04/19 10:01:39

/小纠结

Rust语言社区Mike 2019/04/19 10:03:07

@求学上 不一定是Copy的,要看他的组成里面有没有用堆

Rust语言社区Mike 2019/04/19 10:03:27

全标量类型组成的话,就是Copy的

求学上 2019/04/19 10:05:43

嗯嗯,也就是说这种复合类型,struct,enum,是否是copy取决于其内部成员是否都是标量?

Rust语言社区Mike 2019/04/19 10:06:15

对,准确

求学上 2019/04/19 10:06:24

谢谢你/托脸

Rust语言社区Mike 2019/04/19 10:06:32

默认实现是这样

Rust语言社区Mike 2019/04/19 10:06:37

没事,不客气

求学上 2019/04/19 10:06:45

/呲牙/托脸

Read more

進化島:噁心遊戲

有一位網友使用Amethyst實作了進化島

如果不怕噁心的話可以來學習

Read more

挑戰取得共識

在rust中大家常常會希望找到一個最好的寫法

但常常會有衝突

讓我們想像一個場景,當你有兩個選擇A, B

轉換為我的選擇A,他的選擇B時

一旦發生,就很難理性的做選擇

來看看作者怎麼探討這個問題吧

Read more

Rust 1.34 版 hello world

跟C語言一樣精簡 Read more

async-timer

非同步計時器

Read more


From 日报小组 @Damody

日报订阅地址:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页