学 Rust 很难吗?为什么我看了半小时教程感觉已经会了,想了解下哪方面是难点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
silentsky
V2EX    Rust

学 Rust 很难吗?为什么我看了半小时教程感觉已经会了,想了解下哪方面是难点

  •  
  •   silentsky 2023-10-22 14:42:10 +08:00 6720 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。
    37 条回复    2024-04-19 21:57:10 +08:00
    IvanLi127
        1
    IvanLi127  
       2023-10-22 14:43:47 +08:00 via Android
    我上手写之前也是这么想的
    Leviathann
        2
    Leviathann  
       2023-10-22 14:46:33 +08:00   2
    那你无敌了呀
    Noicdi
        3
    Noicdi  
       2023-10-22 14:49:19 +08:00 via iPhone
    真上手写的时候我就傻了
    silentsky
        4
    silentsky  
    OP
       2023-10-22 14:51:52 +08:00
    可能是错觉
    iOCZ
        5
    iOCZ  
       2023-10-22 14:57:02 +08:00   1
    智能指针也会了?还有宏
    hsfzxjy
        6
    hsfzxjy  
       2023-10-22 15:05:21 +08:00 via Android
    来写个链表
    ShadowPower
        7
    ShadowPower  
       2023-10-22 15:09:02 +08:00   1
    难点:
    生命周期、所有权、借用检查器、异步
    silentsky
        8
    silentsky  
    OP
       2023-10-22 15:13:53 +08:00
    @iOCZ 指针以前学 C 的时候有学过 这个我还没细看
    sukinee
        9
    sukinee  
       2023-10-22 15:16:21 +08:00
    写的时候就知道了
    musi
        10
    musi  
       2023-10-22 15:21:44 +08:00 via iPhone
    我不看教程问 gpt 我也感觉会了
    silentsky
        11
    silentsky  
    OP
       2023-10-22 15:25:07 +08:00
    @ShadowPower 所有权不难啊 刚看了几分钟学会了
    silentsky
        12
    silentsky  
    OP
       2023-10-22 15:29:30 +08:00
    学了这个能涨工资就好了
    learningman
        13
    learningman  
       2023-10-22 15:29:38 +08:00
    “指针以前学 C 的时候有学过”
    给我一种无知者无畏的感觉
    iOCZ
        14
    iOCZ  
       2023-10-22 15:54:20 +08:00
    就是眼睛觉得会了,脑子也认可了。动起手来还是会这里想想,那里想想。学习的时候,多半是认可它,所以很顺畅,写起来的时候,这里怀疑,那里怀疑,就会有一些磕碰。
    xbird
        15
    xbird  
       2023-10-22 17:12:43 +08:00   1
    生命周期,叠加 trait 设计,叠加所有权,能让你把头发抓烂,你要是半小时会了,在下拜服
    czzhengkw
        16
    czzhengkw  
       2023-10-22 17:30:35 +08:00
    一看就会,一做就废是大部分人的学习常态
    duluosheng
        17
    duluosheng  
       2023-10-22 20:05:55 +08:00
    你牛~,瑞思拜
    nash
        18
    nash  
       2023-10-22 20:27:09 +08:00   2
    你看 3 分钟短视频,也会觉得造芯片也就那么回事
    cxsz
        19
    cxsz  
       2023-10-22 21:14:49 +08:00
    学了好几次了,不知道干啥,后来就又忘了
    8675bc86
        20
    8675bc86  
       2023-10-22 21:16:12 +08:00
    lz 啥学校毕业的,如果是清北,那正常,其他的话,……
    solobat
        21
    solobat  
       2023-10-22 21:32:56 +08:00
    看看确实简单清晰,写着写着就越来越费劲
    lB2cGz9OQ1agw7XK
        22
    lB2cGz9OQ1agw7XK  
       2023-10-22 22:23:05 +08:00
    嗯,hello world
    我也学会了
    DeWjjj
        23
    DeWjjj  
    PRO
       2023-10-22 22:41:06 +08:00   1
    指针是指针,box 类是 box 类,套起来了就很繁琐。
    外加,宏代码复用编辑也是一个很头疼的事情。
    Laussan
        24
    Laussan  
       2023-10-23 05:58:23 +08:00
    看看你的双链表
    coolmenu
        25
    coolmenu  
       2023-10-23 08:37:20 +08:00
    人生三大错觉,现在又多了一个?
    makelove
        26
    makelove  
       2023-10-23 08:45:12 +08:00
    https://coolshell.cn/articles/20845.html
    这里也有个教程,看看是不是还很简单
    tairan2006
        27
    tairan2006  
       2023-10-23 08:50:07 +08:00
    写个双链表我看看
    huiwang520
        28
    huiwang520  
       2023-10-23 09:48:18 +08:00
    学完之后加上一个项目实战,就基本差不多了,这里推荐一个手写 KV 数据库的实战项目
    https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g
    encro
        29
    encro  
       2023-10-23 09:52:44 +08:00
    如果 c,c++很溜,学 rust 没啥难度。
    Huelse
        30
    Huelse  
       2023-10-23 09:56:42 +08:00
    难点还是借用和所有权吧,理解起来简单,想实现一个抽象的东西的时候就头疼了,要非清晰内存的情况,否则连编译都过不了
    qpwoeiruty
        31
    qpwoeiruty  
       2023-10-23 10:17:22 +08:00
    会了和会是两个概念
    ShadowPower
        32
    ShadowPower  
       2023-10-23 12:36:25 +08:00
    @silentsky 看了几分钟学会的,和真正掌握的情况其实不太一样。只看概念本身的话,其实都不难。
    看概念的讲解就好比在看教材,而且还是写得不错的那种教材。
    看别人的代码就好比看习题答案,别人直接给出了思考的结果,所以感受不到思考的过程。

    但是自己亲自去写这玩意的时候,就跟做题一样……
    思路卡在一个地方,好久都解不出来……
    PTLin
        33
    PTLin  
       2023-10-27 13:48:21 +08:00
    就比如最简单的几个 case
    fn main() {
    let mut a = [1, 2, 3];
    let b = &a[0];
    a[0] = 1;
    //b;
    }
    为什么把注释//b;去掉了就编译不过。


    fn foo<'a, 'b: 'a>(s1: &'a str, s2: &'b str) -> &'a str {
    if s1.len() > s2.len() {s1} else {s2}
    }

    fn main() {
    let s1="s1".to_string();
    let s2="s2".to_string();
    let ret=foo(&s1, &s2);
    ret;
    }
    这里'b:'a ,并且 s1 生命周期比 s2 长,为什么能运行。
    tietou
        34
    tietou  
       2023-11-03 14:45:00 +08:00
    那你厉害呀
    sxfscool
        35
    sxfscool  
       2023-11-29 09:09:27 +08:00
    pub fn get<H, T, S, B>(handler: H) -> MethodRouter<S, B, Infallible>
    where
    H: Handler<T, S, B>,
    B: HttpBody + Send + 'static,
    T: 'static,
    S: Clone + Send + Sync + 'static,

    这个能看懂吗
    wule61
        36
    wule61  
       2023-12-07 18:29:17 +08:00 via Android
    写的时候满屏幕都是报错
    uiiytwyfsdtr
        37
    uiiytwyfsdtr  
       2024-04-19 21:57:10 +08:00
    就像一个写了五年 C++的人在简历上写精通 C++一样...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5562 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 03:09 PVG 11:09 LAX 19:09 JFK 22:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86