Rust中struct的function与method
一个示例就能看明白,关键处皆有注释,大致要点:impl 一个struct时,
1.如果方法参数为&self,则为方法 ,可以用"对象实例.方法"来调用
2.如果方法参数不是&self,则为函数,只能用"struct名::函数名"来调用
//类似java里的pojo类
struct Pet{
name:String,
age:i8, //最后1个,不能省略
} impl Pet{
//定义函数(类似java里的static方法)
fn to_string(pet:&Pet)->String{
format!("name:{},age:{}",pet.name,pet.age)
} //定义方法(类似java里的实例方法)
fn to_str(&self)->String{
format!("name:{},age:{}",self.name,self.age)
}
} fn main() {
let dog = Pet{
name:String::from("dog"),
age:1
};
//调用Pet里的function
println!("{}",Pet::to_string(&dog));
//调用Pet实例dog上的method
println!("{}",dog.to_str());
}
输出:
name:dog,age:1
name:dog,age:1
Rust中struct的function与method的更多相关文章
- Myeclipse10中出现Cannot return from outside a function or method错误提示
最近发现myeclipse10中有几处bug 比如: Cannot return from outside a function or method onClick="return chec ...
- 你真的了解PeopleSoft中的function和method方法嘛
谈下function和method在内嵌与外部传参的区别 1.内嵌函数(Internal Functions) 看下现在输出&x的话会返回什么值? 2.内嵌函数(Internal Functi ...
- jsp中出现onclick函数提示Cannot return from outside a function or method
在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...
- [Go语言]从Docker源码学习Go——function和method
function和method关系 method是针对某一类型定义的function, function可以单独调用,method必须针对某一类型的实例进行调用 //function 调用方式 pac ...
- 【译】理解Rust中的闭包
原文标题:Understanding Closures in Rust 原文链接:https://medium.com/swlh/understanding-closures-in-rust-21f2 ...
- 【译】理解Rust中的Futures(二)
原文标题:Understanding Futures in Rust -- Part 2 原文链接:https://www.viget.com/articles/understanding-futur ...
- Cannot return from outside a function or method
最近发现myeclipse10中有几处bug 比如: Cannot return from outside a function or method onClick="return chec ...
- myeclipse 10 载入新的项目报错Cannot return from outside a function or method
myeclipse 10 载入新的项目报错Cannot return from outside a function or method 解决方法: 方法一: window -->prefere ...
- Rust 中的继承与代码复用
在学习Rust过程中突然想到怎么实现继承,特别是用于代码复用的继承,于是在网上查了查,发现不是那么简单的. C++的继承 首先看看c++中是如何做的. 例如要做一个场景结点的Node类和一个Sprit ...
- drp错误集锦---“Cannot return from outside a function or method”
好久都不动的项目,今天打开项目突然是红色感叹号.详细错误表现为: 也就是说,如今MyEclipse已经不识别在JSP页面中使用的return方法了(并且不止一处这种警告),那怎么办?????顿时闹钟一 ...
随机推荐
- 【代码】Android|判断asserts下的文件存在与否,以及普通文件存在与否
作者版本:Android 11及以上 主要是发现网上没有完整的.能跑的代码,不知道怎么回事,GPT给我重写的.我只能保证这个代码尊嘟能跑,不像其他的缺胳膊少腿的. asserts 贴一下结果: boo ...
- JDK安装及IDE安装编辑
1.下载及安装JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 环境变量的系统变量填上如下: 变量 ...
- Seata源码—9.Seata XA模式的事务处理
大纲 1.Seata XA分布式事务案例及AT与XA的区别 2.Seata XA分布式事务案例的各模块运行流程 3.Seata使用Spring Boot自动装配简化复杂配置 4.全局事务注解扫描组件的 ...
- 用装饰器简化大量if-elif代码
源码地址:https://github.com/edgedb/edgedb/blob/master/edb/common/value_dispatch.py 鸣谢原文:一日一技:使用装饰器简化大量 i ...
- Python 设置国内镜像
从Python官网下载.安装python之后(不建议使用brew安装python3) MacOS :打开/User/xxx/.config/pip/pip.conf Windows:打开%APPDAT ...
- win10将python打包成apk详细文档
打包不支持windows所以可以找一台linux的电脑 或者用win10子系统(推荐) 我用的是Ubuntu 方法:https://www.jianshu.com/p/fcf21d45ea74 我简单 ...
- Microsoft 赋能企业应用开发者:无缝集成AI,无需转变编程语言
在当前的技术浪潮中,Microsoft 针对企业级应用开发领域提出了一项新的见解,打破了关于AI.机器学习(ML)与Java之间的固有神话.作为Java或.NET企业级应用的开发者,您无需转换阵地或深 ...
- Golang的格式化输出
一.格式化说明符 通用占位符: %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 打印值的类型 %% 输出百分号 布尔型占位符: %t 接收bool ...
- ChatMoney让你体验古诗词的快乐
本文由 ChatMoney团队出品 介绍说明 在中华传统文化的璀璨星空里,诗词宛如熠熠生辉的明珠,而飞花令则是其中一颗独特而耀眼的星辰.如今,我们自豪地为您推出专为孩子精心打造的飞花令机器人,为孩子们 ...
- 【前端AI实践】Lingma:使用工具辅助开发让你停不下来
如果你用过 GitHub Copilot,那你对 AI 编程助手应该不陌生.而 Lingma 是阿里云推出的一款专注于编程场景的智能编码助手. 它深度集成在 VS Code.JetBrains 等主流 ...