This commit is contained in:
2021-07-17 13:48:36 -05:00
parent a72c7af84e
commit e6eab1377f
2 changed files with 52 additions and 1 deletions

7
Cargo.lock generated Normal file
View File

@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "by-example-01-02-formatted-print"
version = "0.1.0"

View File

@@ -1,3 +1,47 @@
fn main() {
println!("Hello, world!");
// In general, the `{}` will be automatically replaced with any
// arguments. These will be stringified.
println!("{} days", 31);
// Without a suffix, 31 becomes an i32. You can change what type 31 is
// by providing a suffix. The number 31i64 for example has the type i64.
// There are various optional patterns this works with. Positional
// arguments can be used.
println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob");
// As can named arguments.
println!(
"{subject} {verb} {object}",
object = "the lazy dog",
subject = "the quick brown fox",
verb = "jumps over",
);
// Special formatting can be specified after a `:`.
println!(
"{} of {:b} people know binary, the other half doesn't",
1, 2,
);
// You can right-align text with a specified width. This will output
// " 1". 5 white spaces and a "1".
println!("{number:>width$}", number = 1, width = 6);
// You can pad numbers with extra zeroes. This will output "000001".
println!("{number:>0width$}", number = 1, width = 6);
// Rust even checks to make sure the correct number of arguments are
// used.
//println!("My name is {0}, {1} {0}", "Bond");
// FIXME ^ Add the missing argument: "James"
// Create a structure named `Structure` which contains an `i32`.
#[allow(dead_code)]
struct Structure(i32);
// However, custom types such as this structure require more complicated
// handling. This will not work.
//println!("This struct `{}` won't print...", Structure(3));
// FIXME ^ Comment out this line.
}