当前位置: 首页 > news >正文

2023-11-rust-struct

struct 类似 schema。 ts的interface 和type

struct MyStruct {width: i32,height: i32,
}

创建实例

 let eg1 = MyStruct {width: 23,height: 22,};

struct 可以有自己的方法,并且默认第一个参数是该实例

impl MyStruct {fn can_hold(&self, instance: &MyStruct) -> bool {self.width * self.height > instance.width * instance.height}
}

&self 是 self:&Self 的缩写。在一个impl块中,Self类型是impl块的别名,方法的第一个参数必须有一个名为 self的Self类型的参数。可以缩写为self,跟函数一样也有所有权机制。如果不是self会报错:

found the following associated functions; to be used as methods, functions must have a `self` param

struct 关联函数:

impl MyStruct {fn ass(a: i32) -> Self {Self {width: a,height: 44,}}
}

第一个参数可以不为self,返回一个 Self实例。调用的时候跟实例方法不同。

   eg1.can_hold(&eg3) //方法MyStruct::ass(55) // 关联函数

关联函数的目的是返回一个 结构体实例。可以理解为一个构造函数,使用结构体 和  :: 语法 来调用这个函数,这个函数位于结构体的命名空间中,:: 用于关联函数 和 结构体的命名空间。

另外:

方法可以重载 ..... 

http://www.lryc.cn/news/227124.html

相关文章:

  • Docker容器编排
  • 计算机中丢失mfc140u.dll怎么解决
  • postman设置动态token, 每次登录更新token
  • 架构师范文(AI写作)两篇
  • 基于SSM的电子病历系统
  • 一次sougo workflow库的使用过程
  • macOS Big Sur(macos11版本)
  • 泛微E-Office信息泄露漏洞复现
  • -bash: sudo: command not found的解决方法
  • CMOS介绍
  • 《软件工程与计算》期末考试真题范例及答案
  • springboot高校全流程考勤系统-计算机毕设 附源码 27637
  • 大二第四周总结——用原生js封装一个分页器
  • 智能AI系统ChatGPT系统源码+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型
  • ARM Linux 基础学习 / 系统相关,文件系统,文件属性
  • nginx https 如何将部分路径转移到 http
  • 算法通关村第八关-白银挑战二叉树的深度和高度问题
  • 使用LogBack替换Log4j
  • 财务报告是什么
  • SOME/IP 协议介绍(四)RPC协议规范
  • PostgreSQL基础入门
  • Django 密码管理:安全实践与技术深入
  • 说说你对React Router的理解?常用的Router组件有哪些?
  • “可一学院”新课程《区块链企业应用》正式上线
  • Springboot---整合对象储存服务MinIO
  • HDRP图形入门:HDRP渲染管线depth翻转
  • uniapp——项目02
  • Go语言的Json序列化与反序列化、Goto语法、Tcp Socket通信
  • gitlab-ce-12.3.5 挖矿病毒及解决方案
  • 每日一题(LeetCode)----数组--移除元素(四)