• rust包


    crate

    库(箱)

    库中包含文件:

    crate
     └── front_of_house
         ├── hosting
         │   ├── add_to_waitlist
         │   └── seat_at_table
         └── serving
             ├── take_order
             ├── serve_order
             └── take_payment


    #[macro_use]

    使用#[macro_use] 可以使被注解的module模块中的宏被应用(替换)到当前作用域中;

    或者注释crate中的宏应用到当前crate作用域中。

    总之:

    1,引入其他文件(模块)定义的宏

    2,引入其他库的宏。

    #[macro_use]

    extern crate log;

    引入log库中的宏

    链接

    #[macro_export]

    在每个宏定义前面添加 #[macro_export]注释,表示这些宏可以被外部的 crate 使用。

    anyhow

    anyhow库中包含有有一些Error特征,包括Result.

    而且使用起来更方便。

    引入anyhow之后,使用Result等价于anyhow::Result,不影响Ok()的返回

    使用需引入依赖包:

    [dependencies]

    anyhow = "1.0"

    cfg---条件编译

    就是按照指定的条件进行编译,它允许你基于一个传递给编译器的标记编译代码

    所有的#[ ]都是标注者位置以下的代码的属性。

    链接

    条件编译可能通过两种不同的操作:

    • cfg 属性:在属性位置中使用 #[cfg(...)]
    • cfg! 宏:在布尔表达式中使用 cfg!(...)
    1. fn main(){
    2. #[cfg(not(windows))]
    3. println!("do--not windows");
    4. #[cfg(linux)]
    5. println!("do--linux");
    6. if cfg!(target_os="linux"){
    7. println!("cfg!--linux");
    8. }
    9. if cfg!(target_os="windows"){
    10. println!("cfg!--windows");
    11. }
    12. }
    13. cfg!一定要有的等号
    14. 注意有等号时有""

    使用不需要引入模块

    use

    指定路径两种方法:

    1,::

    2,{ }

    1. mod windiws{
    2. pub mod ipc;
    3. }

    std

    fs

    所有文件操作只需要引入:

    File,OpenOptions

    1. use std::fs::{File,OpenOptions};
    2. fn main(){
    3. let file=OpenOptions::new().read(true).write(true).create(true).open("foo.txt");
    4. }

    serde_json::from_str

    用字符串给匹配给某个数据类型

    1. use serde::{Deserialize,Serialize};
    2. use serde_json::{self,Result};
    3. use anyhow;
    4. #[derive(Deserialize, Debug)]
    5. struct Student{
    6. name:String,
    7. age:i32
    8. }
    9. fn main()->anyhow::Result<()>{
    10. let s=r#"{"name":"fangfang","age":12}"#;
    11. let st1:Student=serde_json::from_str(s)?;
    12. println!("{:?}",st1);
    13. Ok(())
    14. }
    15. 1,main函数有返回值就一定要在函数名之后加上返回值;
    16. 2,使用的字符串一定要用R# #包起来;
    17. 3,数据结构的字段用”“引起了,:后面是字段值

  • 相关阅读:
    Visual Studio Code 快捷键大全
    GBase 8s ALTER FRAGMENT 语句 MODIFY子句(一)
    Python反复折磨斐波那契序列
    玉米社:SEM竞价推广投放之提升转化操作办法
    Spring 常用注解
    MP4 格式:最少加载多少数据就能渲染出视频首帧?优化短视频播放体验必须先了解它丨音视频基础
    笔记_前端基础试题:HTML+CSS
    JavaScript高级编程
    notepad 文本筛选并替换
    使用 Supervisor 配置 Laravel 运行队列处理器
  • 原文地址:https://blog.csdn.net/m0_60274660/article/details/126386934