当前播放: 07 | 语法面面观:面向表达式(中)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Rust语言基础 (32讲)
01 | 课程介绍
免费
02 | 内容综述
免费
学习方法推荐与课程组织逻辑
免费
03 | Rust语言学习观
免费
04 | Rust语言概览
05 | 语法面面观:词法结构
06 | 语法面面观:面向表达式(上)
07 | 语法面面观:面向表达式(中)
08 | 语法面面观:面向表达式(下)
09 | 语法面面观:数据类型 (上)
10 | 语法面面观:数据类型 (下)
11 | 语法面面观:函数与闭包(上)
12 | 语法面面观:函数与闭包(中)
13 | 语法面面观:函数与闭包(下)
14 | 语法面面观:模式匹配
15 | 语法面面观:智能指针(上)
16 | 语法面面观:智能指针(下)
17 | 语法面面观:字符与字符串(上)
18 | 语法面面观:字符与字符串(下)
19 | 语法面面观:集合容器(上)
20 | 语法面面观:集合容器(下)
21 | 语法面面观:迭代器(上)
22 | 语法面面观:迭代器(下)
23 | Rust语法面面观:模块
24 | Rust 语法面面观:Cargo包管理器(上)
25 | Rust 语法面面观:Cargo包管理器(下)
26 | 语法面面观:实际项目的组织结构(上)
27 | 语法面面观:实际项目的组织结构(下)
28 | 语法面面观:定义自己的Crate(上)
29 | 语法面面观:定义自己的Crate(中)
30 | 语法面面观:定义自己的Crate(下)
31 | 作业&第二章预告
第二章:Rust语言核心概念 (56讲)
32 | 本章内容介绍:Rust语言架构
33 | 所有权:内存管理基础知识
34 | 所有权:安全管理之内存安全
35 | 所有权:Copy语义和Copy trait
36 | 所有权:深入理解Copy行为
37 | 所有权:深入理解Move语义
38 | 所有权:Move与析构
39 | 借用检查: 完全理解Scope和NLL
40 | 借用检查: 深入理解生命周期和生命周期参数
41 | 借用检查: 深入理解生命周期参数Early bound
42 | 借用检查:深入理解生命周期参数Tvs&T
43 | 借用检查: 深入理解生命周期参数: trait对象的生命周期参数
44 | 借用检查: 深入理解生命周期参数:高阶生命周期(上)
45 | 借用检查: 深入理解生命周期参数:高阶生命周期(中)
46 | 借用检查: 深入理解生命周期参数:高阶生命周期(下)
47 | 线程与并发:理解线程与并发
48 | 线程与并发:线程间安全共享数据
49 | 线程与并发:构建「无悔」并发系统(一)
50 | 线程与并发:构建「无悔」并发系统(二)
51 | 线程与并发:构建「无悔」并发系统(三)
52 | 线程与并发:构建「无悔」并发系统(四)
53 | 线程与并发:无锁并发(上)
54 | 线程与并发:无锁并发(中)
55 | 线程与并发:无锁并发(下)
56 | trait与泛型:trait静态分发
57 | trait与泛型:认识trait对象
58 | trait与泛型:泛型和trait实现模板方法
59 | trait与泛型:trait对象本质
60 | trait与泛型:对象安全本质
61 | trait与泛型:利用Enum代替trait对象
62 | trait与泛型:trait覆盖实现的一个解决方案
63 | trait与泛型:trait对象与Sized
64 | trait与泛型:trait对象与Box Self
65 | 编程范式:Rust语言编程范式讨论(上)
66 | 编程范式:Rust语言编程范式讨论(下)
67 | Rust错误处理概要
68 | Rust错误处理:Option
69 | Rust错误处理:Result(上)
70 | Rust错误处理:Result(下)
71 | Rust错误处理:try
72 | Rust错误处理:Panic
73 | Rust元编程之反射
74 | Rust元编程之反射的两种应用思路
75 | Rust元编程之编译过程与宏展开概述
76 | Rust元编程之声明宏上
77 | Rust元编程之声明宏下
78 | Rust元编程之过程宏三件套介绍
79 | Rust元编程之过程宏之Bang宏实现原理
80 | Rust元编程之过程宏-使用配置文件动态生成代码
81 | Rust元编程之过程宏Derive宏案例
82 | Rust元编程之过程宏属性宏
83 | 客观理解Unsafe Rust
84 | Unsafe Rust之安全抽象
85 | Unsafe Rust安全抽象之Drop检查
86 | Unsafe Rust安全抽象之型变
87 | UnsafeRust之其他
第三章:Rust异步编程基础 (11讲)
88 | Rust异步编程之IO模型
89 | Rust异步编程之epoll和io_uring
90 | Rust异步编程之事件驱动编程模型
91 | Rust异步编程之epoll代码实践
92 | Rust异步编程之Reactor代码实践
93 | Rust异步编程之MiniMio代码实践
94 | Rust异步编程之Mio代码实践(上)
95 | Rust异步编程之Mio代码实践(下)
97 | Rust异步编程之Future和Futures-rs介绍
96 | Rust异步编程之异步编程模型概要
98 | Rust异步编程之编写异步echo服务(上)
07 | 语法面面观:面向表达式(中)

07 | 语法面面观:面向表达式(中)

张汉东
《Rust编程之道》作者
每周四 17:00更新3992
新人首单 ¥59.9 原价 ¥129
11
本节摘要
登录 后留言

精选留言(6)

  • __Unsafe
    const generic那里应该是let arr: [i32; 3] = [1, 2, 3];let arr: [i32; 5] = [1, 2, 3, 4, 5];
    2020-09-24
    1
    3
  • 25ma
    极客时间这个第二层的回复一定要点进去才能看,这个真的要命哦,尤其是视频区,体验很糟糕
    2021-03-12
  • Believer(入陣)
    老师好,请问对开发者是隐藏的和对开发者是透明的区别是?
    2020-10-07
    1
  • 蜉蝣
    老师好,我的 const fn 报错:`if` is not allowed in a `const fn`

    是因为 rust 版本的原因吗?

    code:
    ```
    const fn fib(n: u128) -> u128 {
        const fn helper(n: u128, a: u128, b: u128, i: u128) -> u128 {
            if i <= n {
                helper(n, b, a+b, i+1)
            } else {
                b
            }
        }
        helper(n, 1, 1, 2)
    }
    ```
    2020-09-30
    1
  • Che Kwas
    3. 思考标准库中std::vec::Vec::new函数为什么是const fn?这样做有什么好处?
    我的理解是:为了提升性能,顺便问一下,是不是能写成const fn的函数尽量写成const fn? 我看某些C语言加密算法的源码,把大部分纯计算类的函数都写成了宏。
    我同学的回答:把Vec::new定义成const fn,就可以很方便地定义Vec<T>类型的常量或静态变量了,如:
    static V: Vec<i32> = vec![];
    const VV: Vec<i32> = vec![];
    如果Vec::new不是const fn,则无法定义Vec<T>常量,想定义Vec<T>静态变量的话,得借助第三方库lazy_static。
    2020-09-30
    1
  • 吴翱翔
    sqlx库的编译时SQL语句类型和语法检查也是通过const fn去实现的吗?
    2020-09-25
    1
收起评论
看过的人还看
数据结构与算法之美

王争  前Google工程师

81讲 | 110803 人已学习

新人首单 ¥69.9 原价 ¥199
左耳听风

陈皓  网名“左耳朵耗子”,资深技术专家,骨灰级程序员

118讲 | 56933 人已学习

新人首单 ¥99 原价 ¥299
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

49讲 | 76618 人已学习

新人首单 ¥69.9 原价 ¥199
设计模式之美

王争  前Google工程师,《数据结构与算法之美》专栏作者

113讲 | 39089 人已学习

新人首单 ¥99 原价 ¥299