千家信息网

Rust怎么设置环境变量

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本文小编为大家详细介绍"Rust怎么设置环境变量",内容详细,步骤清晰,细节处理妥当,希望这篇"Rust怎么设置环境变量"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Rus
千家信息网最后更新 2024年11月11日Rust怎么设置环境变量

本文小编为大家详细介绍"Rust怎么设置环境变量",内容详细,步骤清晰,细节处理妥当,希望这篇"Rust怎么设置环境变量"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

Rust语言的特点

高性能 - Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

可靠性 - Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

生产力 - Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

在项目中,我们通常需要设置一些环境变量,用来保存一些凭证或其它数据,这时我们可以使用 dotenv 这个 crate。

首先在项目中添加 dotenv 这个依赖:

例如在下面这个项目中,需要设置数据库连接字符串和 Debug 等级这两个环境变量。在开发环境下,我们可以在项目根目录下创建 .env 这个文件:

在 .env 文件里,我们设置两个环境变量,分别是 DB_URL 和 LOG_LEVEL:

下面来到 main.rs,想要访问系统的环境变量,我们使用标准库的 std::env 即可:

这里,我们先把获取到的环境变量进行遍历和打印,然后再分别尝试打印 PATH、DB_URL 和 LOG_LEVEL 这三个环境变量的值。

结果如下:

我们可以看到,前面是遍历打印的环境变量,后边打印出了 PATH 的值。然后在尝试获取 DB_URL 值的时候程序就恐慌了,因为没有找到这个环境变量。

现在我们使用 dotenv 这个 crate:

先把 dotenv 导入,然后在程序开始的地方执行 dotenv() 函数即可,这就会从当前目录或父目录中的 .env 文件中加载环境变量。

如果你想指定其它路径,可以使用 crate 中提供的 from_filename 或 from_path 这两个函数。

好,那么调用 dotenv() 之后为什么还要调用 ok() 方法?

首先,dotenv() 返回的是 Result 类型,如果返回值不使用的话,就会发出一个警告:

调用 ok() 之后,会把 Result 转化为 Option,而 Option 就不会产生未使用 Result 的警告了。

那么,为什么不使用 unwrap()?

因为在生产环境中,你不会使用 .env 这个文件,你应该使用真实的环境变量,这时 dotenv() 函数就会加载失败,如果使用 unwrap(),那么你的程序就会停止运行。

所以这里使用 ok() 的目的就是当加载 dotenv 环境文件失败的时候可以忽略错误。

代码:

use std::env;use dotenv::dotenv;fn main() {    dotenv().ok();    for (k, v) in env::vars() {        println!("{}: {}", k, v);    }    println!("PATH: {}", env::var("PATH").unwrap());    println!("DB: {}", env::var("DB_URL").unwrap());    println!("LOG: {}", env::var("LOG_LEVEL").unwrap());}

读到这里,这篇"Rust怎么设置环境变量"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

环境 变量 文件 语言 效率 项目 两个 函数 文章 程序 类型 错误 开发 运行 安全 代码 内存 内容 工具 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 红色管弦乐队2服务器刷不出来 东京租房软件开发 河北省网络安全管理办法 软件开发预期读者和阅读建议 昔阳天气预报软件开发 中国台湾oa软件开发需要多少钱 网络安全检测评估资质 汕头市林百欣计算机网络技术 网络技术需要数学基础吗 当今数据库技术发展状况 数据库组件还有一个是 中央企业网络安全监管平台 新友财务软件数据库 自己做的网页数据库怎么办 重庆数据传输网络技术哪家好 中山大学计算机网络技术 和孩子对话网络安全的视频 曙光天阔服务器安装 哈尔滨学习软件开发平台 软件开发转测试有用吗 江西手机软件开发 杭州运行智慧消防软件开发 河北惠普服务器续保维修 服务器连接数据库修改数据库密码 计算机网络技术三级的通过率 电力网络技术服务合同 服务器地址和wifi地址 数据库如何使用事务串行化 违章软件开发 博兴客户管理软件开发
0