【rust】Rust 默认引用 std::prelude
读音与词义prelude的读音英式/美式均为/ˈprel.juːd/“prel-yood”含义名词意为序曲、前奏、序幕。在编程语言中指自动导入的预定义模块为代码提供开箱即用的常用功能。详细说明自动导入在 Rust 2024 版本中每个模块都会自动导入usestd::prelude::rust_2024::*;这意味着你可以直接使用 prelude 中定义的类型、trait 和函数无需显式导入。Prelude 包含的内容std::prelude主要包含常见类型String,Vec,Option,ResultBox,Cow,Slice重要 trait类别trait转换相关AsRef,AsMut,Into,From标记 traitSend,Sync,Sized内存与复制Clone,Copy,Drop格式化与默认Default,Debug闭包Fn,FnMut,FnOnce迭代器Iterator,DoubleEndedIterator,ExactSizeIterator异步 (2024 新增)Future,IntoFuture常用宏println!,format!,vec!,assert!等示例对比// 不需要这样写// use std::option::Option;// use std::vec::Vec;// use std::string::String;// use std::boxed::Box;// use std::future::Future; // 2024 版本中也不需要显式导入fnmain(){// 可以直接使用因为已经在 prelude 中letv:Veci32vec![1,2,3];letsString::from(hello);leto:Optioni32Some(42);letbBox::new(5);println!({},s);}禁用 Prelude如果需要避免自动导入例如在no_std环境中可以使用#![no_implicit_prelude]属性#![no_implicit_prelude]// 现在必须显式导入所有内容externcratestd;usestd::prelude::rust_2024::*;各版本对应关系Rust 版本默认导入的 preludeRust 2015std::prelude::v1Rust 2018std::prelude::rust_2018Rust 2021std::prelude::rust_2021Rust 2024std::prelude::rust_20242024 版本特别说明Rust 2024 Edition 在 prelude 中新增了Future和IntoFuture两个异步 trait这意味着异步编程时无需显式导入这些核心 trait。升级注意事项由于Future被加入 prelude如果代码中存在与poll方法同名的方法可能会产生歧义。运行以下命令可自动修复cargofix--edition注意在no_std环境中只有core::prelude会被导入不同 Rust Edition 的 prelude 内容可能略有差异2024 版本是最新标准
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2445192.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!