iterators.mdcommit 6ba952020fbc91bad64be1ea0650bfba52e6aab4让我们讨论一下循环。还记得Rust的for循环吗?这是一个例子:for x in 0..10 { println!("{}", x);}现在我们更加了解Rust了,我们可以谈谈这里的具体细节了。这个范围(0..10)是“迭代器”。我们可以重复调用迭代器的.next()方法,然后它会给我们一个数据序列。就像这样:let mut range = 0..10;
testing.mdcommit 6ba952020fbc91bad64be1ea0650bfba52e6aab4Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.Edsger W. Dijkstra, "The Humble Programmer" (1972)软件测试是证明bug存在的有效方法,而证明它们不存在时则显得令人绝望的不足。Edsger W.
the-stack-and-the-heap.mdcommit 049b9e4e8067b998e4581d026b0bc6d1113ab9f5作为一个系统语言,Rust 在底层运作。如果你有一个高级语言的背景,这可能有一些你不太熟悉的系统编程方面的内容。最重要的一个是内存如何工作,通过栈和堆。如果你熟悉类 C 语言是如何使用栈分配的,这个章节将是一个复习。
type-aliases.mdcommit 63bb3e66ee559d7e02f877a05a6bc54c9a5ab0d5type关键字让你定义另一个类型的别名:type Name = String;你可以像一个真正类型那样使用这个类型:type Name = String;let x: Name = "Hello".to_string();然而要注意的是,这一个别名,完全不是一个新的类型。