rust语言基础pub关键字及Some语法示例

 更新时间:2023年07月19日 10:53:43   作者:子栖  
这篇文章主要为大家介绍了rust语言基础pub关键字及Some语法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

rust语言pub关键字语法

在rust中,pub是一个关键字,用于指定一个项的可见性。它可以被用来控制模块(module)中的函数、结构体、枚举、常量、trait等的可见性。

如果一个项被标记为pub,则可以被外部的模块访问和使用。如果一个项没有被标记为pub,则它只能在当前模块内部访问。

// 模块定义
mod foo {
    // 函数定义,没有标记 pub
    fn private_function() {
        println!("This is a private function.");
    }
    // 函数定义,标记 pub
    pub fn public_function() {
        println!("This is a public function.");
    }
    // 结构体定义,标记 pub
    pub struct PublicStruct {
        pub field1: i32,
        field2: i32,
    }
    // 枚举定义,标记 pub
    pub enum PublicEnum {
        Option1,
        Option2,
    }
}
// 在另一个模块中使用 foo 模块中的公共函数和结构体
fn main() {
    foo::public_function(); // 可以调用公共函数
    let my_struct = foo::PublicStruct { field1: 42, field2: 13 }; // 可以创建公共结构体的实例
    // 编译错误:private_function 是私有函数,不能被访问
    // foo::private_function();
}

Rust中的Some

1、首先要知道什么是Option和Result

来源:

许多语言使用null/nil/undefined类型来代表空的输出和处理异常错误。Rust跳过了,特别是防止空指针异常之类的问题,由于异常等原因导致敏感数据泄漏等等。相反,Rust提供了两个特殊的类枚举:Option和Result就是来处理以上的问题

内容:

  • 可选的值要么是Some要么是没有值/None

Result要么用成功/Ok要么是失败/Err

// An output can have either Some value or no value/ None.
enum Option<T> { // T is a generic and it can contain any type of value.
  Some(T),
  None,
}
// A result can represent either success/ Ok or failure/ Err.
enum Result<T, E> { // T and E are generics. T can contain any type of value, E can be any error.
  Ok(T),
  Err(E),
}

并且不需要单独引入它们

Option的基础用法:

在写一个函数或者数据类型的时候:

  • 如果一个函数的参数是可选的
  • 如果函数是非空的并且输出的返回可能不是空值
  • 如果一个值,活着是一个属性的数据类型可能是空

2、我们不得不使用Option作为它们的数据类型

例如,一个函数的输出可能是&str类型或者是输出是空,函数的返回类型可以被设置为 Option<&str>

fn get_an_optional_value() -> Option<&str> {
    //if the optional value is not empty
    return Some("Some value");
    //else
    None
}
struct Name {
  first_name: String,
  middle_name: Option<String>, // middle_name can be empty
  last_name: String,
}

以上就是rust语言基础pub关键字及Some语法示例的详细内容,更多关于rust语言pub Some语法的资料请关注脚本之家其它相关文章!

相关文章

  • 浅析Rust多线程中如何安全的使用变量

    浅析Rust多线程中如何安全的使用变量

    这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2025-01-01
  • Rust中使用Serde对json数据进行反序列化

    Rust中使用Serde对json数据进行反序列化

    JSON作为目前流行的数据格式之一,被大家广泛使用,在日常的开发实践中,将JSON数据反序列化为对应的类型具有重要的意义,在Rust中,Serde几乎成了JSON数据解析的事实标准,本文将给大家介绍Rust中使用Serde对json数据进行反序列化,需要的朋友可以参考下
    2024-01-01
  • Rust中的方法与关联函数使用解读

    Rust中的方法与关联函数使用解读

    在Rust中,方法是定义在特定类型(如struct)的impl块中,第一个参数是self(可变或不可变),方法用于描述该类型实例的行为,而关联函数则不包含self参数,常用于构造新实例或提供一些与实例无关的功能,Rust的自动引用和解引用特性使得方法调用更加简洁
    2025-02-02
  • Rust中的Option枚举快速入门教程

    Rust中的Option枚举快速入门教程

    Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事项,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Rust裸指针的安全性实例讲解

    Rust裸指针的安全性实例讲解

    裸指针是一个不包含所有权和借用关系的原始指针,它们与常规指针相比没有任何限制和保护措施,这篇文章主要介绍了Rust裸指针的安全性实例,需要的朋友可以参考下
    2023-05-05
  • 深入了解Rust中trait的使用

    深入了解Rust中trait的使用

    先前我们提到过 trait,那么Rust中的trait 是啥呢?本文将通过一些示例为大家详细讲讲Rust中trait的使用,感兴趣的小伙伴可以了解一下
    2022-11-11
  • Rust语言中的String和HashMap使用示例详解

    Rust语言中的String和HashMap使用示例详解

    这篇文章主要介绍了Rust语言中的String和HashMap使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Rust中箱、包和模块的学习笔记

    Rust中箱、包和模块的学习笔记

    Rust中有三个重要的组织概念:箱、包、模块,本文主要介绍了Rust中箱、包和模块的学习笔记,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • R语言ggplot2绘图安装与调试

    R语言ggplot2绘图安装与调试

    ggplot2是R语言中最常用的绘图包之一,它提供了一种基于图层的绘图语法,使得用户可以轻松地创建高质量的数据可视化图表。在使用ggplot2之前,需要先安装该包并进行调试。安装ggplot2可以通过CRAN或GitHub进行,调试则需要注意数据格式、语法错误等问题。
    2023-06-06
  • Rust for循环语法糖背后的API场景分析

    Rust for循环语法糖背后的API场景分析

    for语句是一种能确定循环次数的循环,for 语句用于执行代码块指定的次数,今天通过本文给大家介绍Rust for循环语法糖背后的API场景分析,感兴趣的朋友跟随小编一起看看吧
    2022-11-11

最新评论