Merge pull request #275 from liyue201/patch-1

标点符号
pull/276/head
Sunface 3 years ago committed by GitHub
commit e8ad426770
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -246,11 +246,11 @@ fn gen_static_str() -> &'static str{
#### 使用场景 #### 使用场景
光看上面的描述,大家可能还是云里雾里、一头雾水。 光看上面的描述,大家可能还是云里雾里、一头雾水。
那么我说一个简单的场景,**你需要一个在运行期初始化的值,但是可以全局有效,也就是和整个程序活得一样久**, 那么久可以使用`Box::leak`,例如有一个存储配置的结构体实例,它是在运行期动态插入内容,那么就可以将其转为全局有效,虽然`Rc/Arc`也可以实现此功能,但是`Box::leak`是性能最高的. 那么我说一个简单的场景,**你需要一个在运行期初始化的值,但是可以全局有效,也就是和整个程序活得一样久**, 那么久可以使用`Box::leak`,例如有一个存储配置的结构体实例,它是在运行期动态插入内容,那么就可以将其转为全局有效,虽然`Rc/Arc`也可以实现此功能,但是`Box::leak`是性能最高的
## 总结 ## 总结
`Box`背后式调用`jemalloc`来做内存管理所以堆上的空间无需我们的手动管理。与此类似带GC的语言中的对象也是借助于box概念来实现的一切皆对象 = 一切皆box 只不过我们无需自己去box罢了。 `Box`背后式调用`jemalloc`来做内存管理所以堆上的空间无需我们的手动管理。与此类似带GC的语言中的对象也是借助于box概念来实现的一切皆对象 = 一切皆box 只不过我们无需自己去box罢了。
其实很多时候编译器的鞭笞可以助我们更快的成长例如所有权规则里的借用、move、生命周期就是编译器在教我们做人哦不是是教我们深刻理解堆栈、内存布局、作用域等你在其它GC语言无需去关注的东西。刚开始是很痛苦但是一旦熟悉了这套规则写代码的效率和代码本身的质量将飞速上升直到你用Java开发的效率写出Java代码不可企及的性能和安全性最终Rust语言所谓的开发效率低、心智负担高对你来说终究不是个事。 其实很多时候编译器的鞭笞可以助我们更快的成长例如所有权规则里的借用、move、生命周期就是编译器在教我们做人哦不是是教我们深刻理解堆栈、内存布局、作用域等你在其它GC语言无需去关注的东西。刚开始是很痛苦但是一旦熟悉了这套规则写代码的效率和代码本身的质量将飞速上升直到你用Java开发的效率写出Java代码不可企及的性能和安全性最终Rust语言所谓的开发效率低、心智负担高对你来说终究不是个事。
因此, 不要怪Rust**它只是在帮我们成为那个更好的程序员,而这些苦难终究成为我们走向优秀的垫脚石** 因此,不要怪Rust**它只是在帮我们成为那个更好的程序员,而这些苦难终究成为我们走向优秀的垫脚石**

Loading…
Cancel
Save