官术网_书友最值得收藏!

Printing with string interpolation

An obvious way to use variables is to print out their value, as is done here:

// see Chapter 2/code/constants2.rs 
static MAX_HEALTH: i32 = 100; 
static GAME_NAME: &str = "Monster Attack"; 
const MYPI: f32 = 3.14; 
 
fn main() { 
  println!("The Game you are playing is called {}.", GAME_NAME); 
  println!("You start with {} health points.", MAX_HEALTH); 
} 

This gives an output which looks like this:

The Game you are playing is called Monster Attack.
You start with 100 health points.

The first argument of the println! macro is a literal format string containing a placeholder {}. The value of the constant or variable after the comma is converted to a string and comes in its place. There can be more than one placeholder and they can be numbered in order, so that they can be used repeatedly, as in the following code:

println!("In the Game {0} you start with {1} % health, yes you read it correctly: {1} points!", GAME_NAME, MAX_HEALTH); 

This produces the following output:

In the Game Monster Attack you start with 100 % health, yes you read it correctly: 100 points!
  

The placeholder can also contain one or more named arguments, like this:

println!("You have {points} % health", points = 70); 

This produces the following output:

You have 70 % health  

Special ways of formatting can be indicated inside the {} after a colon (:), optionally prefixed by a position, like this:

println!("MAX_HEALTH is {:x} in hexadecimal", MAX_HEALTH); // 

This gives an output like this: 64

println!("MAX_HEALTH is {:b} in binary", MAX_HEALTH);   // 

This gives an output like this: 1100100

println!( "Two written in binary is {0:b}", 2);   // 

This gives an output like this: 10

println!("pi is {:e} in floating point notation", PI);  // 

This gives an output like this: 3.14e0.

The following formatting possibilities exist:

  • o: For octal
  • x: For lower hexadecimal
  • X: For upper hexadecimal
  • p: For a pointer
  • b: For binary
  • e: For lower exponential notation
  • E: For upper exponential notation
  • ?: For debugging purposes

The format! macro has the same parameters and works the same way as the println! macro, but it returns a string instead of printing out.

Consult http://doc.rust-lang.org/std/fmt/ for an overview of all possibilities.
主站蜘蛛池模板: 防城港市| 四子王旗| 涟水县| 浮梁县| 温泉县| 淮阳县| 五家渠市| 莒南县| 绵竹市| 剑河县| 陈巴尔虎旗| 河西区| 鸡西市| 伊川县| 和平县| 上林县| 峨眉山市| 肃北| 南充市| 吴忠市| 师宗县| 锦屏县| 宜良县| 东源县| 栾川县| 西丰县| 平湖市| 米泉市| 来宾市| 句容市| 乌什县| 河源市| 建德市| 方城县| 本溪市| 仁怀市| 彭泽县| 西乡县| 高邮市| 南投县| 柘荣县|