V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  quinoa42  ›  全部回复第 6 页 / 共 17 页
回复总数  327
1 ... 2  3  4  5  6  7  8  9  10  11 ... 17  
2019-01-15 10:39:10 +08:00
回复了 dangoron 创建的主题 Rust 关于借用的一个小问题
忘了说了,所以楼主的代码不能编译通过的原因是 vec.index(0)是个 reference,reference 不能转移 ownership
而后一个版本(直接调用 index())的时候,x 的类型是&Val,这里是个 borrow,所以编译可以通过
2019-01-15 10:35:25 +08:00
回复了 dangoron 创建的主题 Rust 关于借用的一个小问题
let x = vec[0]; 是 move,move 之后 ownership 交给了 x
rust 里 trait 分 Copy 和 Clone,这俩的区别就是 Copy 默认不需要很耗时的调用而 Clone 默认需要,所以 Copy 会自动调用而 Clone 不会(而 scalar,比如 i32,都实现了 Copy )

换个角度:
```rust
#[derive(Debug, Clone, Copy)]
struct Val {
val: i32,
}

fn main() {
let vec = vec![Val{ val: 0 }, Val{ val: 1 }, Val{ val: 2 }];
let x = vec[0];
println!("x: {:?}", x);
}
```
这样就不会报错,因为 let x = vec[0]自动调用了 Copy::clone()

更进一步的理解首先需要参考 Index::index():
https://doc.rust-lang.org/std/vec/struct.Vec.html#impl-Index%3CI%3E
但是仔细看会发现,index()返回的是个 reference …………不能直接 let x = vec[0]的原因是,
如果用了[]这个语法糖,rust 会在调用 index()之后再调用一次 deref
所以直接调用 index()也能编译:
```rust
use std::ops::Index;
#[derive(Debug)]
struct Val {
val: i32,
}

fn main() {
let vec = vec![Val{ val: 0 }, Val{ val: 1 }, Val{ val: 2 }];
let x = vec.index(0);
println!("x: {:?}", x);
}
```
2019-01-14 14:14:13 +08:00
回复了 Sparetire 创建的主题 Rust Rust 中说的不可变指的是什么?
除去极其个别的情况(你后面会学到),如果要修改函数的某个参数或是变量,需要要么 own 那个值,要么有 mutable reference
reference 实际上相当于是 const pointer,不能修改指向的地址位置的(用 Rustacean 的话来讲,你只是 borrow 了这个变量)

也就是说是:&bla == ??? const *const bla
&mut bla == ??? * const bla
mut bla = ??? bla
bla = ??? const bla

我也是前段时间才开始学 rust,如有错误请多多指正
2019-01-09 14:22:00 +08:00
回复了 zeroze 创建的主题 MacBook Pro 感觉 touchbar 和 vim 不兼容怎么办?按 esc 特别难受😣。。。
右 command 改成 ESC
2019-01-08 10:11:29 +08:00
回复了 coolzilj 创建的主题 程序员 大家怎么看这种占坑行为
丢开源社区的脸
2019-01-07 09:02:57 +08:00
回复了 duvalier 创建的主题 互联网 说一说我来到 V2EX 都知道并做了些什么?
来到 V2EX 几个大收获,一个是种草并入了 mbp,一个是被安利了 arch linux,还有一个是找到了最好的语言(暂定) rust
当然最大的收获是,摸鱼逛的网站多了一个选择 lol
2019-01-07 07:55:03 +08:00
回复了 iPhone8 创建的主题 MacBook Pro 2019 年了, mbp 选 256G 还是 512G 的?
@zkeeper 有时候我需要在没有网络的环境下写代码,所以感觉本机虚拟机 /docker 还是挺有必要的
所以 128GB 略吃紧,但还算能用
2019-01-06 16:26:46 +08:00
回复了 Codingless 创建的主题 问与答 有没有英语很好的国内党,你们都是怎么学的英语?
104 还不够好吗...
口语你到那边就熟了,在国内基本没那么理想的环境给你练习的
2019-01-06 12:00:12 +08:00
回复了 Gaussen 创建的主题 程序员 转行做程序员,工作两年了,想补充一下基础知识,求教。
csapp 实体书就算不想看了还能垫桌角,虽然太重了压不了泡面
9012 了还能看到硬盘图,而且是在 v2ex..
imgur,请
2019-01-06 09:16:46 +08:00
回复了 wanghuangjie 创建的主题 macOS 谈谈最近折腾的黑苹果--不达预期的 xps 9360
@kokutou 有传言说八代 u 散热极差
不过我的官翻顶配正在路上,到时候到货了装 arch linux 测试下
2019-01-06 06:20:13 +08:00
回复了 red0range 创建的主题 Apple 用 mac 的你们是如何愉悦并顺畅的使用 office 的?
我一直用 google doc,需要用 doc 写 paper 的时候也是,顺带解决了定时保存备份的问题
2019-01-06 06:15:16 +08:00
回复了 RobinCheng 创建的主题 macOS Mac 文件共享只能 AFP 和 SMB?有办法用 NFS 或者 FTP 吗?
@littlewing 升到 high sierra 以后用 APFS 可破,HFS+无论怎么折腾都是 NFD
参考: https://www.j3e.de/linux/convmv/man/#HFS-on-OS-X-Darwin
2019-01-06 05:25:42 +08:00
回复了 colorfulshark 创建的主题 Vim Vim 下有没有包含头文件之后就可以补全函数声明的插件
cquery 不行吗?
2019-01-04 16:57:02 +08:00
回复了 puritania 创建的主题 MacBook Pro 用 2015 Mbp 的同学请进
不战了,毕竟是乞丐版
考虑换台 xps13 投奔 arch linux
2019-01-03 12:41:50 +08:00
回复了 Sparetire 创建的主题 Rust Rust 环境搭建的一些小问题
我研究了半天最后还是用的 rustup,我这下载就是慢了点,不用开代理
rustup 不仅仅是个安装工具,它更加是个 rust 全套官方组件的包管理工具
2019-01-01 19:36:53 +08:00
回复了 Heiban 创建的主题 宽带症候群 不知道明年要不要续电信宽带
具体看地方,但是如果你玩 ns 的话在我这用移动基本等于告别联机了
以前我也觉得用 26 键根本点不准,直到我用了 gboard
划划划真的很爽
2018-12-27 15:09:51 +08:00
回复了 natforum 创建的主题 问与答 新手想学习编程选 Python 入门还是 JavaScript
@abclearner 确实 rust 的官方教程写得非常详细,很好懂
我也算是个编程语言爱好者,rust 越学越喜欢
2018-12-27 14:35:24 +08:00
回复了 natforum 创建的主题 问与答 新手想学习编程选 Python 入门还是 JavaScript
入门不要选动态语言,推荐 Java
1 ... 2  3  4  5  6  7  8  9  10  11 ... 17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   947 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 19:20 · PVG 03:20 · LAX 11:20 · JFK 14:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.