跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Rust 它凭啥这么难?学习路线这么陡峭。。。。
未分類
2021 年 3 月 27 日

Rust 它凭啥这么难?学习路线这么陡峭。。。。

Rust 它凭啥这么难?学习路线这么陡峭。。。。

資深大佬 : nickyang897897 1

Rust 适合有 C++基础的人学

第一天用的时候各种报错,到第二天突然感觉豁然开朗,有种语言就该这么设计的感觉。昨天写 JavaScript 时顺手写了个 const x = if {} 一直报错,看了半天才发现问题

对我个人来说最大的缺点是还需要写分号

大佬有話說 (99)

  • 資深大佬 : typetraits

    那要看你之前主要用的啥。

  • 資深大佬 : yamasa

    Rust 是给原本写 C/C++ 的人用的。
    既不想放弃 C/C++ 手动管理内存的性能优势,又想要避免手动管理内存的风险
    结果就很简单:编译器帮你作内存管理的 Code Review
    而为了实现这一目的,填充了大量的让编译器能理解的标注。

  • 資深大佬 : no1xsyzy

    几年前 Rust 刚出来的时候我看了一下,也觉得挺难的,直接被劝退了
    前些天偶然在 B 站看到一个微软 MVP 做的入门教程,发现也不难,除了语法糖多,也就多了个内存管理和生命周期的新概念

  • 資深大佬 : missdeer

    我个人对 Rust 的看法是,它其实并没有降低复杂性(因为它要操作内存,并且需要极致性能),它只是把复杂性从开发者那里,移动到了编译器的变异阶段,所以 rust 的编译速度特别慢,而且它的特性不比 C++少多少

  • 資深大佬 : abcbuzhiming

    @missdeer 可以分享一下课程吗

  • 資深大佬 : xzh654321

    搞过 C++的学起来还好

  • 資深大佬 : solaya

    我以前也这么觉得,后来看了 c++,发现 rust 就是 c++的 move+RILL+引用,就没那么难了。当然,放弃了指针也带来了很多不便,最关键找工作没用。。。

  • 資深大佬 : 676529483

    春节时候学习了一下 Rust,发现难就难在它那个内存管理和生命周期的概念上;但是编译器都帮你搞定了几乎;所以基本上只要代码能通过编译,就没问题了

  • 資深大佬 : anonydmer

    Rust 的 lifetime 属于好理解,写起来就有点脑壳痛。学习曲线复杂还是得看 Haskell 。Rust 学习的背景大多数是因为之前不是搞 CPP 的,如果从 Java / Go 转过来会在内存管理上卡一下,如果是从 C 转过来,就会在复杂的语言特性卡一下。说起来还是 CPP 本身的复杂度换了个马甲。

  • 資深大佬 : yannxia

    因为有且仅有它和 C++追求“zero cost abstraction”

    既想要没有性能损失,还想要高级的抽象能力,,那肯定要损失点儿什么,,总不能只有好处、没有代价吧,,天下哪有这么好的事儿

  • 資深大佬 : XIVN1987

    确实是很难,生命周期这东西我就没一次可以一次性写对的,总是被编译器教做人
    宏定义这玩意到现在还是学不会
    然而我觉得 Rust 这种才是未来语言的发展方向,完整的 tool chain ( cargo 、rustfml 、rustdoc ),ownership 使得不需要 GC 的存在,不存在 null 也就不存在 NullPointerException,灭掉 Exception 改为 Result 这样就不会像 C#、Kotlin 这种调用第三方不知道里面会扔什么异常的情况( Java 有显式异常所以还好)。
    trait 我目前还是保留意见,没有其它语言中 extends 这种感觉还是怪怪的,但数据字段与方法实现的完整分离是个好设计。
    目前对于 Rust 来说最大问题就是生态,async 、await 标准确定下来才没多久,可用的 GUI 框架也没有( iced 试过,离实际生产差太多了)。再过个 5 年或者 10 年应该就会好很多,现在学完全就是投资未来。

    PS:个人想法,要是 Rust 能加上 C# 的表达式树那就完美了

  • 資深大佬 : h82258652

    再难能有 c++难?
    c++编译那一堆莫名其妙的 compile or linking errors,那才是让人崩溃呢……

  • 資深大佬 : yazoox

    难的原因其实就是把原来 C 运行期的问题提前到了编译期,然后就会产生非常多的写法上的限制。

  • 資深大佬 : araaaa

    Rust 不难,难的是 rust 想解决的问题。

    我试过不管效率不管资源消耗,一切对象都复制复制,这样写 Rust 非常爽,不难学。但如果想尽量提高效率节省资源,就难写了。

    然而,想尽可能提高效率节省资源,哪种语言不难呢?可见难的不是语言,是现实问题。

  • 資深大佬 : SuperMild

    话说如果写 C++严格按照一个子集来写,会不会也很好?之前在知乎看到一个帖子,说是大家讨论 C++里面哪些特性应该小心使用,不知道大家怎么看这个?

    > 能做到对 C++语言的特性基本分类,然后根据分类正确使用它们我对 C++特性的四大分类为了兼容 C 语言,不得不继承下来的特性,比如#include,强制类型转换,直接内存操作,基础类型和函数系统,宏为了零开销实现 OOP 而设计的特性,比如 class 继承和派生,虚函数,函数重载为了开发效率而设计的特性,比如 template 以及一些列 stl,算符重载,auto 为了解决实际问题不得不向现实妥协而设计的特性,比如 explicit,mutable,xxxxx_cast,register,volatile,inline,asm,template 特化,friend 第一种特性在真正需要和 C 语言打交道是要小心使用,第二种特性才是主要使用的,第三种特性只在遇到开发效率问题时使用,第四种特性要尽量避免使用,尽量不要制造需要这些特性才能解决的问题

    作者:姚冬
    链接: https://www.zhihu.com/question/444555079/answer/1754123101

  • 資深大佬 : levelworm

    看到主附言说 “学 Rust 虽然可以理解,但是学完一点生产力都没有,看别人的源码还是不知所云”,可见 rust 本身不难,而是一般需要用到 rust 的地方,多数是想解决难题,“看别人的源码不知所云”不是不理解 rust,而是不理解别人在解决的问题。

  • 資深大佬 : SuperMild

    通过编译,世界和平。为了无 GC,加上了无数特性。但确实很规范的语言,Result 处理真的优雅。

  • 資深大佬 : DearMark

    http://www.yinwang.org/blog-cn/2016/09/18/rust

    看看王垠怎么说

  • 資深大佬 : gygesm123

    @xzh654321 #6 https://www.bilibili.com/video/BV1hp4y1k7SV

  • 資深大佬 : rust

    @gygesm123
    https://www.zhihu.com/question/50779086/answer/122684586
    垠神这篇早就被干烂了

    反正我觉得王垠这篇完全就只是看了下语法然后写出来的,return 那个简化我一开始也很不习惯,但没这个 lambda 表达式就没法简洁了

  • 資深大佬 : h82258652

    你确定你会 Scala ? 逃)

    Rust 难,因为你计算机基础不够,你对操作系统内存变量这些东西理解不足。

  • 資深大佬 : HiShan

    Scala – -。头皮发麻,自己写的代码时间长不看都看不懂。

  • 資深大佬 : cco

    @h82258652 语言的精髓在于简洁是没错,但如果因为简洁而失去了可读性,那真的得不偿失。

  • 資深大佬 : gygesm123

    还是要做一个小项目才能熟练起来。

  • 資深大佬 : coolmenu

    @gygesm123 是的,有时候我真的不介意写多一点,例如 Rust 中同名变量覆盖这种,没有我觉得可能更好更严谨。

  • 資深大佬 : h82258652

    @gygesm123 wangyin 那个解读真的太肤浅了。大概就是大家在评红梦,他说章节标题没加粗大家不容易找到的感觉。

    可读性当然很重要,但是 wangyin 那些东西对 rust 的可读性完全没有意义,如果写过 rust 的人就知道反而会显著降低可读性,因为 rust 里匿名类型太多了。

  • 資深大佬 : nbndco

    从 GC 语言转到 Rust 一般都会有类似感觉。

  • 資深大佬 : fakeshadow

    @h82258652 哪有什么生态问题,去年写了一年 async/await smol/tokio 一堆实现还不够你用?

  • 資深大佬 : fengjianxinghun

    @fengjianxinghun 去年用 smol 的 async/await 实现了一个 2 层 tap/vpn 一个 tcp/udp 代理

  • 資深大佬 : fengjianxinghun

    Rust 主要还是写起来太费劲…

    老实说我不觉得这是未来语言发展方向

  • 資深大佬 : tairan2006

    @h82258652 不好说,但我不是很喜欢那种混淆不清的语言。就像我喜欢读通俗易懂的小说,不喜欢文言文一样。

  • 資深大佬 : gygesm123

    @fengjianxinghun async-std 和 tokio 的问题啊。。。当你发现一个 lib 依赖 async-std,然后另一个 lib 依赖 tokio 的时候。。。反正我心里是崩溃的,虽然 tokio 说会靠近 async-std 就是了。
    另外 GUI 这块生态就是真的不行。

  • 資深大佬 : h82258652

    @h82258652 啥,smol 早就兼容 2 种写法了,你在 smol 里即可用 async-std 也可以用 tokio,async-std 内部用得 smol 更没问题。

    smol::block_on(Compat::new(async move {
    //三种都兼容

    }));

  • 資深大佬 : fengjianxinghun

    @fengjianxinghun 感谢,smol 还没用过,有空看一下

  • 資深大佬 : h82258652

    @h82258652 三种实现源码我全看了,现在生态成熟得不行。sj 大神得 smol 兼容一切得弄法完全修补了分裂。

  • 資深大佬 : fengjianxinghun

    @tairan2006 C/C++写起来也费劲啊,不是未来发展方向,但要压榨硬件性能也没有更好的办法。rust 不是用来取代 GC 语言的。

  • 資深大佬 : SuperMild

    因为 rust 无 gc 呀,如果 rust 有 gc 的话,估计不会这么难

  • 資深大佬 : chenqh

    ![image.png]( https://i.loli.net/2021/03/19/Da4uCAf8yFlSOq5.png)

  • 資深大佬 : fffang

    @chenqh 如果 rust 有 gc, 那就完全发展不起来了,单凭语法特点干不过 C#和 kotlin 。

  • 資深大佬 : cmdOptionKana

    这个 V2EX 的 markdown 闹哪样?

  • 資深大佬 : fffang

    用过 C++ 的都说好.

    Rust 确实不是用来解决”互联网工程”相关的工业级问题的, 相比能快速开撸大工程 (CRUD, 笑) 的 PHP .Net Java, 缺少”工业级”轮子. 相比 Go Python 缺乏亲民性. 在简单用用的情况下相比 C/C++ 又太过复杂.

    但是如果深度使用过 C/C++, 总有一个内存管理的坑等着你, 这时候再用 Rust, 会发现它简直是”世界之光”. 只要能编译,根本不怕跑飞.

    前段时间的同类讨论 /t/757796

  • 資深大佬 : chinvo

    @fffang #40 回复不支持 md. 贴图直接贴链接就好, 第三方客户端 /浏览器扩展都能自动加载.

    我隐约记得以前 v2 官方支持几个图床链接的自动加载了, 后来好像是把支持砍了???

  • 資深大佬 : chinvo

    Scala 也不好理解啊(逃
    说正经的。我最近在把 Rust 的语法过了一下,大部分的概念没什么特别新奇的(包括 trial ),主要还是内存管理部分比较新奇,乍一看上挺难的,实际上手写感觉还行(也可能我没接触比较大的项目)
    我写 Rust 目前遇到最大的问题是不知道写什么,大部分项目不需要 Rust 这种 zero-cost abstractions (大部分项目也不延时敏感、内存敏感)。而如果单论语法 Rust 的语法其实在一堆现代语言里算不错(相比 Go 就好多了),但是不是最好的( Rust 各种符号用的太多了,乍一眼看上去会很复杂,个人观点)。
    想来想去,Rust 可能对于我来说适合写一些关于网络编程的小工具。

  • 資深大佬 : xarthur

    确实,我最近得空也在看 Rust 。有好的设计,也有让我很难受的地方,具体的有
    1. 可以通过不写分号来返回表达式的值,这可太隐晦了,可读性直接拉到底。
    2. lifetime 各种意义上的反人类,特别是那个语法,最烦的就是这种依附于特殊字符的语法了,代码堆到最后,那是人看的?
    比如下面这个函数声明
    fn longer<‘a>(s1: &’a str, s2: &’a str) -> &’a str {
    直接把我劝退,这还是没加泛型呢。。。
    3. 没有三元运算符,本来还没什么,搜了一下把我看乐了,反对的原因多是,可读性差,有 if else 一种写法就够了,写这些的人怎么不看看那恶心的无分号返回值呢。

    这语言我是不喜欢,但是它的设计思路很有意义,把内存管理,变量生命期等痛点从运行时提前到编译时,但是带来的限制就是写起来束手束脚,并且额外的信息量得由程序员给出,这可太痛苦了。

    我比较倾向于 dependent type,让语言和编译器本身支持更高级的类型识别,从而真正解放程序员。

  • 資深大佬 : Justin13

    @cmdOptionKana 但是 rust 能编译成 2 进制呀

  • 資深大佬 : chenqh

    我始终有个观点就是,这个时代来说,c++和 rust 这种语言是非常糟糕的语言。
    就跟汽车发展一样,最早是手动挡,对驾驶员操作要求蛮高的,还得略懂一些汽车机械原理。
    然后自动挡取代手动挡,用过都说好。什么费油不费油都是穷人思维,工具就是拿来用的,用不重要开销换便利才是对的思维。
    再然后就是自动驾驶,人以后只需要乘车就是。

    编程语言朝着接近自然语言和超多辅助语法糖发展才是正道,但是偏扁现在的风气又有点反古,什么追求运行效率人人喊的朗朗上口……现在的计算机硬件算力早就过剩了好么,程序慢点又怎么了?换来的是易用啊。。。。
    当然我相信绝大多数程序员的思维跟手动挡车爱好者一样的,自己亲手解决一个已经有现成解决方案的问题,会非常有快感的……

  • 資深大佬 : gggxxxx

    @chenqh kotlin 也能编译成二进制 https://kotlinlang.org/docs/native-overview.html

    另外,Go 有 GC 也能编译成二进制。C#好像也可以或者有计划,这个我不太确定。

  • 資深大佬 : cmdOptionKana

    @gggxxxx 不是,你想想浏览器的渲染引擎,linux/Mac/Win 这些系统的底层,还有量化交易要求的超低 IO 延时,还有数据库,复杂的 office 文档,科幻电影场景渲染……慢了真的可以忍受吗?

  • 資深大佬 : SuperMild

    @gggxxxx “计算机硬件算力早就过剩了” 这句话我认为永远都是错误的

  • 資深大佬 : daysv

    @gggxxxx 低功耗场景还是要靠这些糟糕的语言

  • 資深大佬 : zomco

    @missdeer 你看的这个 Up 主,是不是叫软件工艺师(手动狗头)

  • 資深大佬 : ICU

    @ICU 确实是。。。20 那个链接。。

  • 資深大佬 : missdeer

    @missdeer #4 大家好 我是杨旭

  • 資深大佬 : iold

    @Justin13 lifetime 就是一种泛型啊,你在函数签名上声明了一个泛型’a,并提供给引用类型。
    类似于这样:
    fn longer<T>(s1:Ref<T,String>,s2:Ref<T,String>)->Ref<T,String>

  • 資深大佬 : Jirajine

    @Jirajine 但是还有得 lifetime 的类型泛型啊,我说的是这个

  • 資深大佬 : Justin13

    @Jirajine 但是还有非 lifetime 的类型泛型啊,我说的是这个

    打错,得->非

  • 資深大佬 : Justin13

    我写个链表题搞了快三天了,心态是完全爆炸的

  • 資深大佬 : ppphp

    rust 降低语法复杂的话,还可以扩大适用范围

  • 資深大佬 : pancl

    @Justin13 那就再加啊,生命周期就是通过泛型实现的,func<‘a,’b,C,D> 凡是’开头的都是生命周期的泛型参数,其他的都是普通的泛型参数。
    除了命名方式不一样,别的没有区别。

  • 資深大佬 : Jirajine

    @rust 感谢

  • 資深大佬 : xzh654321

    最近完成了一个基于 io_uring 的 proactor,几百行一次过,刚写完就能跑起来

  • 資深大佬 : Nugine0

    我比较期待 rust 在游戏开发领域的使用

  • 資深大佬 : litchinn

    @Nugine0 [给我看看]

  • 資深大佬 : wellsc

    rust 更适合系统编程(数据库,操作系统),其它感觉 java 或者 C#
    https://github.com/mit-pdos/noria
    https://github.com/redox-os/redox

  • 資深大佬 : zsl199512101234

    如果有时间,可以试试从底层一步一步往上,这样什么语言都不难。

  • 資深大佬 : gBurnX

    @SuperMild 我的意思是,慢的话提升硬件啊。
    等你花时间去优化代码重新发明更高效的编程语言……还不如等新硬件上市……

  • 資深大佬 : gggxxxx

    看了回复,决定给 Rust 种颗草。

  • 資深大佬 : sillydaddy

    @gggxxxx 不是效率的问题,你总得有个东西把底层的脏活干了。不然 java 这样的 gc 语言能自举自己吗,还不是要靠 c++来做解释器。而且像嵌入式、系统内核这种环境根本不可能用 gc 。

  • 資深大佬 : junkun

    @junkun 轻杠一下,java 能自举

  • 資深大佬 : silentt

    @HiShan 搞大数据的,不会 scala 说不过去吧

  • 主 資深大佬 : nickyang897897

    @wellsc 目前只有最简单的功能,但塞了不少优化。
    一般情况下,进行一次 IO 无需任何额外的堆分配。未来用上 io_uring 的最新特性后,可以做到进行一次 IO 连系统调用也不需要。
    有线程、协程、原子指令、互斥锁、信号量、对象池、状态机、小对象优化、自定义虚函数表等知识点,unsafe 自然也没少用。

    https://github.com/datenlord/datenlord/pull/193

  • 資深大佬 : Nugine0

    1. rust 不是给大部分人用的,它的目标是 performance and safety, 不是 productivity; 适合大佬用来做系统编程或做底层的东西
    2. 我觉得就 rust 的目标而言,它的设计已经是尽力做到博采众长了

  • 資深大佬 : DonkeyBenjamin

    写 rust 怎么简单怎么来呗,
    28 原则大部分特性我不用,
    ‘static 一把梭

    逃

  • 資深大佬 : zjsxwc

    @silentt #70 自举虽然一直是可以的,但举的也只是字节码, 举 JVM 还是要靠 C++
    说到 JVM,我倒觉得 JVM 的部分代码可以考虑用 Rust 试试 Rust 它凭啥这么难?学习路线这么陡峭。。。。

  • 資深大佬 : liuxey

    @gggxxxx 市场不等人,你用舒服的语言做个浏览器出来,卡顿。别人用糟糕的语言做个浏览器出来,明显更流畅。

    这个世界是有竞争的,因此才有人愿意干脏活。有的人为啥凌晨四五点起来卖早餐,他不想睡觉吗,假如全世界一起等八九点的早餐,那大家都可以舒服。可惜有竞争啊。

  • 資深大佬 : cmdOptionKana

    @cmdOptionKana 你这个卖早餐的例子有点想当然,凌晨四五点起来不代表睡得少。

  • 資深大佬 : AX5N

    @silentt 好像的确没人关心 javac 是什么语言写的,都关注 jvm 了哈哈

  • 資深大佬 : Leviathann

    @AX5N 换个例子吧,webpack vs esbuild
    这种性能差距可以填平多少年的硬件发展了

  • 資深大佬 : Leviathann

    @gggxxxx 不是说硬件水平已经接近物理瓶颈了么 —— 虽然上几次也是这么说的,一次用 FinFET 解决的发热极限,还有一次不清楚,但是你不能指望新技术的必然出现啊。
    Intel 的制程加号再多,性能没有被甩一整个时代…… 到 AMD 5000 系 CPU 才终于是桌面 CPU 头牌换位。

    而且也不环保。

  • 資深大佬 : no1xsyzy

    越简单的语言对开发者要求越高,比如 C 、JavaScript,稍不注意就可能写出有缺陷的代码,而且这些代码中大部分是可以运行的。

    可以去 benchmarksgame 看看 Rust 的压测表现,性能和 C/C++相当,到这种程度又要规避很多 C/C++常见的开发痛点,于是就设计出了一些复杂的开发模式,以至于让 Rust 的学习曲线变得陡峭。

    可能习惯了就好了,特别是现在还带着很多其他语言的思维定式,比如 Rust 里的 Ownership 和 C 里的指针操作乍一看长得差不多,但实际上是完全不同的理念。

    当然看代码看不懂也不一定是自己的问题,代码是有可读性好坏之分的。

    作为一个大学英语四级都没过的人,原版 Book 已经看了一半了,打算看完后再看 Rust by Example,以及去 GitHub 上找找 coreutils_rs 之类的简单项目看看。

  • 資深大佬 : libook

    @no1xsyzy 下面该是 GAA 发挥威力的时候了

  • 資深大佬 : xemtof

    nim 跟 vlang 了解一下

  • 資深大佬 : HeapOverflow

    @junkun 自举不是不可以,是没多大意义。不过像 java 这么庞大的用户群,虽然自举这个事没太有必要,但早晚还是会有人做的,比如 GraalVM,性能上相比于 Hotspot 还是有提升的,GraalVM 运行 java 应用性能提升 4%-10%,运行 Scala 应用性能提升 20%。以后 Oracle 的优化重点估计会越来越向 GraalVM 倾斜了。

  • 資深大佬 : industryhive

    @liuxey JVM 也是可以举的,比如 GraalVM,100%java 代码,估计以后某个版本会用 GraalVM 把 Hotspot 替换掉。

  • 資深大佬 : industryhive

    @Nugine0 tokio 有 io_uring 的实现包装

  • 資深大佬 : fengjianxinghun

    你如果用 Rust 的思路写 C++,会发现还是 C++简单

  • 資深大佬 : maomaorun

    @fengjianxinghun 那个是低层封装,实际要用还得再封一个高层的 proactor 出来。
    io_uring 也提供了多种用户空间 API 的可能,完全可以拿 rust 重写 c 库,换一条路去尝试。

  • 資深大佬 : Nugine0

    @ppphp 有个外国大佬专门写了一个怎么用 rust 写链表的教程

  • 資深大佬 : HeliumTang

    @ppphp 用 rust 写链表直接变成了 c 语言的书写方式,非常头疼

  • 資深大佬 : 1more

    从 15 年就开始关注了,至今还不没学会的,感觉没救了。

  • 資深大佬 : KeepPro

    @missdeer 看你头像,再看你说话,我就猜到了是杨旭。他的视频确实很好,go 开发 web 也很有用。

  • 資深大佬 : jianghu52

    用 go 就行,简单性能也不错。除非你写浏览器,数据库这种,就需要学 rust

  • 資深大佬 : impl

    我学了五遍,这才感觉有点豁然开朗

  • 資深大佬 : FightPig

    学的语言越多,之前所具备的思维定势反而会误导你,就比如 Rust,变量的生命周期包括 Rust 的内存管理和其他的语言都不一样,如果带着其他语言的思维来尝试理解具备完全不同特性的编程语言,那还不如把自己当成一个编程新手,抛弃所有的思维定势。

    至于里大多数吐槽不写分号返回值的这点我倒是觉得还好,这一点明显是脱胎于函数式编程语言:以函数最后一个表达式作为函数的返回值,不过 Rust 还保留了 return 关键字。还有 async 生态问题,如果是 IO 敏感方面的需求我不会选择 Rust 的,Go 不香吗,Rust 就应该写底层、性能敏感型的程序。

  • 資深大佬 : Wincer

    1. Rust/C/C++性能一个梯队,难度也一个梯队
    2. 如果归类,Rust 一类,其它语言(C++/Golang/Java/Python/JavaScript 等)一类,其它语言纵使差距大,但起码概念是相通的
    3. 不追求极致性能、非 CPU 密集,用 Go 就行了,上手简单、编译快、容易出成果,各方面相对均衡

  • 資深大佬 : orannge

    把你原来做的 java 项目全部移植到 Rust, 等你完成, 你就了解 Rust 了, 光看有什么用, 这有不是看小说, 实际运用才行.

  • 資深大佬 : jones2000

    你学了吗,学了才知道其实也就那样。

  • 資深大佬 : naoh1000

    rust 是 c 艹用户想脱离苦海的一种愿景,没被 c 艹艹过可能感受不深,

    ✓没有头文件,直接就是 module 。
    ✓一个工具解决依赖,构建,测试,干翻 cmake
    ✓默认 const auto,以及把一大坨所谓 c++ best practice 直接做进语言 ,你不需要特别注意就会默认写成那样
    ✓trait 把 sfinae (的一部分)和 concept 以及多继承接口等 dynamic/static dispatch 手段统统干掉
    ✓把函数式编程以不那么恶心啰嗦的方式引入进来
    ✓宏比 c/c++ 的更安全和易用

  • 資深大佬 : icylogic

    @icylogic 等 GAT, specialization 和 const generics 都做完基本上就比 sfiane 更强大了(虽然是有生之年系列),另外我觉得 Haskell 和 OCaml 对 Rust 的深刻影响是不能忽视的,trait 和 typeclass 简直不要太像…

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具