@@ -129,7 +129,7 @@ we have a file `hello.rs` containing this program:
129
129
130
130
~~~~
131
131
fn main() {
132
- println("hello?");
132
+ io:: println("hello?");
133
133
}
134
134
~~~~
135
135
@@ -139,12 +139,12 @@ Windows) which, upon running, will likely do exactly what you expect.
139
139
140
140
The Rust compiler tries to provide useful information when it encounters an
141
141
error. If you introduce an error into the program (for example, by changing
142
- ` println ` to some nonexistent function), and then compile it, you'll see
142
+ ` io:: println` to some nonexistent function), and then compile it, you'll see
143
143
an error message like this:
144
144
145
145
~~~~ {.notrust}
146
- hello.rs:2:4: 2:16 error: unresolved name: print_with_unicorns
147
- hello.rs:2 print_with_unicorns("hello?");
146
+ hello.rs:2:4: 2:16 error: unresolved name: io:: print_with_unicorns
147
+ hello.rs:2 io:: print_with_unicorns("hello?");
148
148
^~~~~~~~~~~~~~~~~~~~~~~
149
149
~~~~
150
150
@@ -227,7 +227,7 @@ let hi = "hi";
227
227
let mut count = 0;
228
228
229
229
while count < 10 {
230
- println(fmt!("count: %?", count));
230
+ io:: println(fmt!("count: %?", count));
231
231
count += 1;
232
232
}
233
233
~~~~
@@ -400,10 +400,10 @@ don't match the types of the arguments.
400
400
~~~~
401
401
# let mystery_object = ();
402
402
403
- println(fmt!("%s is %d", "the answer", 43));
403
+ io:: println(fmt!("%s is %d", "the answer", 43));
404
404
405
405
// %? will conveniently print any type
406
- println(fmt!("what is this thing: %?", mystery_object));
406
+ io:: println(fmt!("what is this thing: %?", mystery_object));
407
407
~~~~
408
408
409
409
[ pf ] : http://en.cppreference.com/w/cpp/io/c/fprintf
@@ -422,11 +422,11 @@ compulsory, an `if` can have an optional `else` clause, and multiple
422
422
423
423
~~~~
424
424
if false {
425
- println("that's odd");
425
+ io:: println("that's odd");
426
426
} else if true {
427
- println("right");
427
+ io:: println("right");
428
428
} else {
429
- println("neither true nor false");
429
+ io:: println("neither true nor false");
430
430
}
431
431
~~~~
432
432
@@ -454,10 +454,10 @@ executes its corresponding arm.
454
454
~~~~
455
455
# let my_number = 1;
456
456
match my_number {
457
- 0 => println("zero"),
458
- 1 | 2 => println("one or two"),
459
- 3..10 => println("three to ten"),
460
- _ => println("something else")
457
+ 0 => io:: println("zero"),
458
+ 1 | 2 => io:: println("one or two"),
459
+ 3..10 => io:: println("three to ten"),
460
+ _ => io:: println("something else")
461
461
}
462
462
~~~~
463
463
@@ -483,8 +483,8 @@ commas are optional.
483
483
~~~
484
484
# let my_number = 1;
485
485
match my_number {
486
- 0 => { println("zero") }
487
- _ => { println("something else") }
486
+ 0 => { io:: println("zero") }
487
+ _ => { io:: println("something else") }
488
488
}
489
489
~~~
490
490
@@ -560,7 +560,7 @@ let mut x = 5;
560
560
loop {
561
561
x += x - 3;
562
562
if x % 5 == 0 { break; }
563
- println(int::to_str(x));
563
+ io:: println(int::to_str(x));
564
564
}
565
565
~~~~
566
566
@@ -614,8 +614,8 @@ origin.y += 1.0; // ERROR: assigning to immutable field
614
614
# struct Point { x: float, y: float }
615
615
# let mypoint = Point { x: 0.0, y: 0.0 };
616
616
match mypoint {
617
- Point { x: 0.0, y: yy } => { println(yy.to_str()); }
618
- Point { x: xx, y: yy } => { println(xx.to_str() + " " + yy.to_str()); }
617
+ Point { x: 0.0, y: yy } => { io:: println(yy.to_str()); }
618
+ Point { x: xx, y: yy } => { io:: println(xx.to_str() + " " + yy.to_str()); }
619
619
}
620
620
~~~~
621
621
@@ -630,7 +630,7 @@ reuses the field name as the binding name.
630
630
# struct Point { x: float, y: float }
631
631
# let mypoint = Point { x: 0.0, y: 0.0 };
632
632
match mypoint {
633
- Point { x, _ } => { println(x.to_str()) }
633
+ Point { x, _ } => { io:: println(x.to_str()) }
634
634
}
635
635
~~~
636
636
@@ -1231,7 +1231,7 @@ something silly like
1231
1231
~~~
1232
1232
# struct Point { x: float, y: float }
1233
1233
let point = &@~ Point { x: 10f, y: 20f };
1234
- println(fmt!("%f", point.x));
1234
+ io:: println(fmt!("%f", point.x));
1235
1235
~~~
1236
1236
1237
1237
The indexing operator (`[]`) also auto-dereferences.
@@ -1373,6 +1373,7 @@ and [`core::str`]. Here are some examples.
1373
1373
[ `core::str` ] : core/str.html
1374
1374
1375
1375
~~~
1376
+ # use core::io::println;
1376
1377
# enum Crayon {
1377
1378
# Almond, AntiqueBrass, Apricot,
1378
1379
# Aquamarine, Asparagus, AtomicTangerine,
@@ -1427,6 +1428,7 @@ Rust also supports _closures_, functions that can access variables in
1427
1428
the enclosing scope.
1428
1429
1429
1430
~~~~
1431
+ # use println = core::io::println;
1430
1432
fn call_closure_with_ten(b: &fn(int)) { b(10); }
1431
1433
1432
1434
let captured_var = 20;
@@ -1488,7 +1490,7 @@ fn mk_appender(suffix: ~str) -> @fn(~str) -> ~str {
1488
1490
1489
1491
fn main() {
1490
1492
let shout = mk_appender(~"!");
1491
- println(shout(~"hey ho, let's go"));
1493
+ io:: println(shout(~"hey ho, let's go"));
1492
1494
}
1493
1495
~~~~
1494
1496
@@ -1630,6 +1632,7 @@ And using this function to iterate over a vector:
1630
1632
1631
1633
~~~~
1632
1634
# use each = core::vec::each;
1635
+ # use println = core::io::println;
1633
1636
each([2, 4, 8, 5, 16], |n| {
1634
1637
if *n % 2 != 0 {
1635
1638
println("found odd number!");
@@ -1646,6 +1649,7 @@ to the next iteration, write `loop`.
1646
1649
1647
1650
~~~~
1648
1651
# use each = core::vec::each;
1652
+ # use println = core::io::println;
1649
1653
for each([2, 4, 8, 5, 16]) |n| {
1650
1654
if *n % 2 != 0 {
1651
1655
println("found odd number!");
@@ -1978,7 +1982,7 @@ struct TimeBomb {
1978
1982
impl Drop for TimeBomb {
1979
1983
fn finalize(&self) {
1980
1984
for old_iter::repeat(self.explosivity) {
1981
- println("blam!");
1985
+ io:: println("blam!");
1982
1986
}
1983
1987
}
1984
1988
}
@@ -2010,11 +2014,11 @@ and `~str`.
2010
2014
~~~~
2011
2015
# trait Printable { fn print(&self); }
2012
2016
impl Printable for int {
2013
- fn print(&self) { println(fmt!("%d", *self)) }
2017
+ fn print(&self) { io:: println(fmt!("%d", *self)) }
2014
2018
}
2015
2019
2016
2020
impl Printable for ~str {
2017
- fn print(&self) { println(*self) }
2021
+ fn print(&self) { io:: println(*self) }
2018
2022
}
2019
2023
2020
2024
# 1.print();
@@ -2303,7 +2307,7 @@ mod farm {
2303
2307
}
2304
2308
2305
2309
fn main() {
2306
- println(farm::chicken());
2310
+ io:: println(farm::chicken());
2307
2311
}
2308
2312
~~~~
2309
2313
@@ -2503,7 +2507,7 @@ pub fn explore() -> &str { "world" }
2503
2507
~~~~ {.xfail-test}
2504
2508
// main.rs
2505
2509
extern mod world;
2506
- fn main() { println(~"hello " + world::explore()); }
2510
+ fn main() { io:: println(~"hello " + world::explore()); }
2507
2511
~~~~
2508
2512
2509
2513
Now compile and run like this (adjust to your platform if necessary):
0 commit comments