Rust中对某个结构体实现方法于rust中的关联函数
写法比较独特,但与go语言相差不了太多,都是为结构体单独进行方法的实现:
struct Rectangle{width: u32,length:u32,
}
impl Rectangle{fn area(&self) -> u32 {self.width*self.length}
}
fn main() {let rect = Rectangle{width:30,length:50};println!("{}",rect.area())
}
这里的impl里面就为Rectangle结构体实现了相应的面积计算方法,在调用时与其他语言相同,也是直接通过点的方式调用实例结构体上的方法。self会被推断成Rectangle类型,这与python类似。
注:Rust根据情况自动添加&,&mut或者*,以便object可以匹配方法的签名。
可以在impl块里定义不把self作为第一个参数的函数,叫做关联函数,类似于函数中的构造器。
fn square(size: u32) -> Rectangle {Rectangle {width: size,length: size,}}
Rust中对某个结构体实现方法于rust中的关联函数相关推荐
- 【Go】Go基础(八):结构体和方法
一. 结构体(struct) 1.结构体定义 type identifier struct {field1 type1field2 type2... } 声明:new(Type) 和 &Typ ...
- Swift 中枚举、结构体、类(enum、struct、class)
Swift 中枚举.结构体.类(enum.struct.class) Swift中的枚举与OC相比不会自动分配初始值,值的类型不会限定为整数,可以给定关联值类型和具体值(整型.浮点型.字符型(Swif ...
- oc基础-foundation框架中的常用结构体
1.CGPoint/NSPoint :表示坐标点的 创建: CGPoint *cp=NSMakePoint(10,10); //x,y NSPonit *cp=CGPointMake(10,10); ...
- STM32编程中枚举和结构体的结合
01.结构体定义 基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量. 结构体的定义: ...
- 005 GO-高级数据类型(结构体和方法)
005 GO-高级数据类型(结构体和方法) http://note.youdao.com/noteshare?id=864cc29d2ca6082949d875280f3f5448&sub=D ...
- Python中定义(声明)结构体
文章目录 前言 实现 前言 在Python中并无像C/C++那样的结构体类型,但是由于Python是用C编写而来的,很多东西可以互通. Python是有struct模块,但并非是用于处理一般结构体的, ...
- C++结构体初始化方法
在 C++ 里可以将结构体看作没有任何成员函数的对象,下面对 C++ 结构体的几种初始化方法进行总结. 文章目录 直接赋值 利用函数赋值 构造函数初始化 直接赋值 #include <bits/ ...
- Java中如何实现结构体?如何对结构体进行排序?
***今天在做老师布置的编程题时,遇到了本题.感觉这道题如果用C++来解决的话,用结构体比较好吧!哈哈哈,可能还有其他的好方法,但我目前想到的是用结构体来解决比较合理.Java中有结构体吗?如果有,它 ...
- 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )
文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...
最新文章
- 设置VSCode隐藏菜单栏快捷键Alt+T(头部)、隐藏状态栏快捷键Alt+B(底部),为单屏开发者腾出更多编码空间
- linux 命令行 过滤,利用linux命令行工具进行文本行过滤
- DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测
- Kubernetes kubectl proxy命令的妙用
- 【学习笔记】第二章——时间片轮转RR、优先级调度、多级反馈队列调度算法
- beginnersbook C 语言教程·翻译完成 | ApacheCN
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 计算机考试九九乘法表,多种办法用EXCEL软件生成99乘法表
- 【操作系统实验】设备驱动(Linux环境下)
- TWaver可视化软件(一)初识三维可视化软件
- 计算机中库的创建方法,win7系统下库的创建方法
- 申请基于GPT-4.0模型的NewBing秒审核
- 在word中doc与docx的区别是什么(整理)
- 根据年份判断属相php,自动算出生肖属相的c程序编写程序,输入一个年份,判断该年属相.(提示switch-case......
- 蓝桥杯 算法练习 数字游戏
- 编程的同时还能盯股票基金?VSCode这款神器插件绝了!
- JS实现页面的自动滚动【自动阅读、JS小工具】
- android+小米文件管理器源码,[MediaStore]小米文件管理器android版源码分析——数据来源...
- IT培训讲师的亲身感受
- 88 java反射_4 _注解
热门文章
- Java黑皮书课后题第5章:5.13(求满足n的三次方<12000的n的最大值)使用while循环找出满足n的三次方<12000的n的最大值
- Java黑皮书课后题第2章:*2.8(当前时间)程序清单2-7给出了显示当前格林尼治时间的程序。修改这个程序,提示用户输入相对于GMT的时区偏移量,显示在这个特定时区的时间
- UML大战需求分析阅读笔记——01
- 淘宝2011.9.21校园招聘会笔试题
- C# 文件流 导入 导出
- Django报错:ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。...
- 使用solr的完整流程
- js去掉字符串中的所有空格
- 如何做好性能测试_流程篇
- BPM实例方案分享:表单子表自动填入数据