Rust入门系列:Rust By Example - Hello World

rust中的注释、rust 文本格式化

//! 文档注释主函数之前使用
//! 1

fn foo() {}

/// 文档行内注释 直到本行结束
/// hello world demo
/// 入门第一课

fn main() {
    // Line comments which go to the end of line.
    // 行内注释 直到本行结束
    /* block comments which go to the closing delimiter. */
    /*
    块注释 直到块注释符结束
    这一大块都是注释
    */

    println!("Hello, world!");
    println!("I'm a Rustacean!");

    let _s = format!("将文本写入到字符串");
    print!("输出不换行");
    println!("输出内容,并添加换行符。");
    eprint!("标准错误输出不换行");
    eprintln!("标准错误输出,并添加换行符。");

    //使用 {} 作为占位符,对参数进行替换
    println!("{} 天", 31);

    // {} 中可以添加一个整数型的 位置参数
    println!("{1}你好,这是{0},{0}这是{1}", "张三", "李四");

    // 也可以直接使用带有名称的参数
    println!(
        "{subject} {verb} {object}",
        object = "懒狗",
        subject = "狡猾的狐狸",
        verb = "跳起来了"
    );
    // {:} ‘:’ 后可以跟不同参数,来输出不同格式的数据
    println!("十进制:{}", 69420);
    println!("二进制:{:b}", 69420);
    println!("八进制:{:o}", 69420);
    println!("十六进制小写:{:x}", 69420);
    println!("十六进制大写:{:X}", 69420);

    // 可以以右对齐的方式输出数据,并指定固定的宽度(默认空格,可指定填充字符)
    println!("{number:>5}", number = 1);
    println!("{number:x>5}", number = 1);
    //可通过在参数后增加 ‘$’ 的方式指定动态的宽度
    let space_count = 10;
    let number = 111111;
    println!("{number:x>space_count$}");

    // 只有实现了 fmt::Display 的类型 才可以使用 {} 进行格式化,自定义类型 默认没有实现
    // {:?} 输出无格式文本 ,{:#?} 带有格式的文本
    // #[derive(Debug)]  以调试为目的的实现 可以使用 {:?} 进行输出
    // 实现了 fmt::Display 的 类型,会自动实现 ToString 特性,它可以将我们的类型直接转为字符串。
    // #[derive(Debug)]
    struct Structure(i32);
    println!(
        "本行会报错 {:?} 因为 Sturcture 没有实现 fmt::Display 。\r\n 可以通过取消 60 行的注释解决",
        Structure(3)
    );
}

 

posted @ 2022-09-01 16:46  贤云曳贺  阅读(376)  评论(0编辑  收藏  举报