File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278
9
9
refs/heads/incoming: e90142e536c150df0d9b4b2f11352152177509b5
10
- refs/heads/dist-snap: 01c0971172578ac170b3ae07c35ae416644ca1ef
10
+ refs/heads/dist-snap: 65a1287f53c11718fa2cb153f2046af701c9cf9a
11
11
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
12
12
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
13
13
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
Original file line number Diff line number Diff line change @@ -1817,14 +1817,29 @@ struct Stack<T> {
1817
1817
elements: ~[mut T]
1818
1818
}
1819
1819
1820
- enum Maybe <T> {
1821
- Just (T),
1822
- Nothing
1820
+ enum Option <T> {
1821
+ Some (T),
1822
+ None
1823
1823
}
1824
1824
~~~~
1825
1825
1826
1826
These declarations can be instantiated to valid types like ` Set<int> ` ,
1827
- ` Stack<int> ` and ` Maybe<int> ` .
1827
+ ` Stack<int> ` and ` Option<int> ` .
1828
+
1829
+ The last type in that example, ` Option ` , appears frequently in Rust code.
1830
+ Because Rust does not have null pointers (except in unsafe code), we need
1831
+ another way to write a function whose result isn't defined on every possible
1832
+ combination of arguments of the appropriate types. The usual way is to write
1833
+ a function that returns ` Option<T> ` instead of ` T ` .
1834
+
1835
+ ~~~~
1836
+ fn radius(shape: Shape) -> Option<float> {
1837
+ match shape {
1838
+ Circle(_, radius) => Some(radius),
1839
+ Rectangle(*) => None
1840
+ }
1841
+ }
1842
+ ~~~~
1828
1843
1829
1844
The Rust compiler compiles generic functions very efficiently by
1830
1845
* monomorphizing* them. * Monomorphization* is a fancy name for a simple
You can’t perform that action at this time.
0 commit comments