首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Rust方法和关联函数

Rust方法和关联函数

作者头像
hotarugali
发布2022-03-18 16:47:23
发布2022-03-18 16:47:23
7300
举报

1. 方法

1.1 简介

  • 方法与函数类似:它们使用 fn 关键字和名称声明,可以拥有参数和返回值,同时包含在某处调用该方法时会执行的代码。
  • 不过方法与函数是不同的,方法是在结构体(或者枚举、trait 对象)的上下文中被定义的。
  • 为了使方法位于指定结构体的上下文中,需要将方法放置在该结构体的 impl 块中。
  • 方法的第一个参数总是 self,它代表调用该方法的结构体实例。

1.2 格式

定义一个结构体的方法示例如下:

代码语言:javascript
复制
struct Rectangle {
    width: u32,
    height: u32,
}
// 定义 Rectangle 的方法
impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height
    }
}

2. 关联函数

2.1 简介

  • 关联函数与结构体相关联,同样在 impl 块中定义。它和方法的不同在于它不以 self 作为参数,因此它不是一个结构体的实例。
  • 关联函数经常被用作返回一个结构体新实例的构造函数。
  • 使用结构体名和 :: 语法来调用关联函数。:: 语法用于关联函数和模块创建的命名空间。

2.2 格式

定义一个结构体的关联函数示例如下:

代码语言:javascript
复制
struct Rectangle {
    width: u32,
    height: u32,
}
// 定义 Rectangle 的方法
impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height
    }
    fn square(size: u32) -> Rectangle {
        Rectangle { width: size, height: size }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 方法
    • 1.1 简介
    • 1.2 格式
  • 2. 关联函数
    • 2.1 简介
    • 2.2 格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档