【Rust】function和methed的区别
文章目录
- function
- methed
- Associated Functions
- 参考资料
一句话总结:
function和methed很多都是相同的。
不同点在于:
- methed定义在结构体里面,并且它的第一个参数肯定是self,代表结构体实例。方法需要用
实例名.方法名调用 - 当然结构体里面的函数也可以没有self关键字,该函数被称为关联函数,可以通过
结构体名::函数名的方式调用。
详细介绍接用法,请看下文。
function
1、使用fn关键字声明。
2、使用snake case(下划线)命名风格。
3、rust语言中,function只要定义了就行,不管它在调用位置前定义或者在调用位置之后。如下:
fn main() {println!("Hello, world!");another_function();
}fn another_function() { // 采用snake case命名风格println!("Another function.");
}
4、statements是语句,用于执行一些指令,但是没有返回值,所以不能用于赋值。比如不能有这样的语句 x=y=6,这是因为赋值操作是没有返回值的。
5、expression是表达式,它是有返回值的。
6、对于一个代码块,如果最后一行代码,使用分号结尾了,则表明这是一条语句,是不能作为返回值的。如果没有分号结尾则可以作为函数返回值。
fn main() {println!("Hello, world! {}", another_function(10))
}// define after main
fn another_function(i:i32) -> i32 { // snake case styleprintln!("Another function.i={i}, i={}", i); // print variablei + 1 // expression as return value
}
7、function可以使用return在函数中间返回,也可以直接在函数结束时通过expression返回。
methed
1、使用fn关键字声明。
2、第一个参数必须是self。
3、可以有和属性名一致的方法名。
4、一个结构体可以有多个impl代码块。
Associated Functions
1、所有定义在impl代码块里面的都叫关联函数。一个结构体可以有多个impl代码块。
2、关联函数的参数也可以没有self,此时我们就需要用::去调用这个方法。
fn main() {let animal = Animal::new(2, "Lion");animal.say_hello();
}struct Animal {age:u32,name:&'static str,
}impl Animal {// associated functionfn new(age:u32, name:&'static str) -> Self {Animal { age, name } // expression as return value}// methodfn say_hello(&self) {println!("Hello, my name is {} and I am {} years old.", self.name, self.age);}
}
参考资料
Functions
Method Syntax
相关文章:
【Rust】function和methed的区别
文章目录 functionmethedAssociated Functions 参考资料 一句话总结: function和methed很多都是相同的。 不同点在于: methed定义在结构体里面,并且它的第一个参数肯定是self,代表结构体实例。方法需要用实例名.方法名调用当然结…...
python基础语法 003-4 数据类型集合
1 集合 1.1 什么是集合 什么是集合?ANS:集合set是一个无序的不重复元素序列集合怎么表示?ANS: {} , 用逗号隔开打印元组类型,type()一个元素的集合怎么表示?:ANS:存储多种类型{"a", 1} """…...
Vue如何引用组件
在 Vue.js 中,你可以通过几种方式引用组件: 全局注册 在 main.js 或你的主入口文件中,你可以使用 Vue.component() 方法来全局注册一个组件。这意味着这个组件可以在你的 Vue 应用的任何地方使用。 import MyComponent from ./components/…...
vue3中省市区联动在同一个el-form-item中咋么设置rules验证都不为空的效果
在开发中出现如下情况,在同一个el-form-item设置了省市区三级联动的效果 <el-form-item label"地区" prop"extraProperties.Province"><el-row :gutter"20"><el-col :span"12"><el-select v-model&qu…...
如何集成CppCheck到visual studio中
1.CPPCheck安装 在Cppcheck官方网站下载最新版本1.70,官网链接:http://cppcheck.sourceforge.net/ 安装Cppcheck 2.集成步骤 打开VS,菜单栏工具->外部工具->添加,按照下图设置,记得勾选“使用输出窗口” 2.…...
GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)
GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1. GWO灰狼优化算法 灰狼优化算法(Grey Wolf Optimizer, GWO)是一种启发式优化算法,模拟了灰狼群体的社会行为,包…...
Go-知识测试-工作机制
Go-知识测试-工作机制 生成test的maintest的main如何启动case单元测试 runTeststRunnertesting.T.Run 示例测试 runExamplesrunExampleprocessRunResult 性能测试 runBenchmarksrunNtesting.B.Run 在 Go 语言的源码中,go test 命令的实现主要在 src/cmd/go/internal…...
【小程序静态页面】猜拳游戏大转盘积分游戏小程序前端模板源码
猜拳游戏大转盘积分游戏小程序前端模板源码, 一共五个静态页面,首页、任务列表、大转盘和猜拳等五个页面。 主要是通过做任务来获取积分,积分可以兑换商品,也可用来玩游戏;通过玩游戏既可能获取奖品或积分也可能会消…...
JupyterServer配置
1. 安装jupyter pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout1000 2. 生成配置 jupyter notebook --generate-config 3. 修改配置,设置密码 获取密码的方式:命令行输入python后,用以下方式获…...
信息检索(57):MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS
MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS 摘要1 引言2 相关工作3 预期 FLOPS 次数4 我们的方法5 实验6 结论 发布时间(2020) 最小化 Flop 来学习高效的稀疏表示 摘要 1)学习高维稀疏表示 2)FLOP 集成到损失…...
Python 面试【中级】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
[Open-source tool]Uptime-kuma的簡介和安裝於Ubuntu 22.04系統
[Uptime Kuma]How to Monitor Mqtt Broker and Send Status to Line Notify Uptime-kuma 是一個基於Node.js的開軟軟體,同時也是一套應用於網路監控的開源軟體,其利用瀏覽器呈現直觀的使用者介面,如圖一所示,其讓使用者可監控各種…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 灰度图像恢复(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 …...
leetcode494. 目标和
1.思想方法 2.代码 class Solution { public int findTargetSumWays(int[] nums, int target) {int sum 0;for(int num : nums)sum num;if(sum < Math.abs(target) || (targetsum)%2 ! 0)return 0;int x (targetsum) / 2,n nums.length;//基于滚动数组的方法int[] dp…...
数据结构简介
在容器的基础之上,java引入了数据结构的概念。数据结构可以简单地理解成是一个以特定的布局方式来存储数据的容器。但是我个人觉得这种理解方式不太合理,根据我们学的数据结构的内容,我更倾向于数据结构是数据在容器中的布局方式,…...
PyScript:在浏览器中释放Python的强大
PyScript:Python代码,直接在网页上运行。- 精选真开源,释放新价值。 概览 PyScript是一个创新的框架,它打破了传统编程环境的界限,允许开发者直接在浏览器中使用Python语言来创建丰富的网络应用。结合了HTML界面、Pyo…...
巴黎成为欧洲AI中心 大学开始输出AI创始人
来自Dealroom 的数据显示,在欧洲和以色列AI创业公司中,法国的AI创业公司资金最充裕。Mistral、Owkin、Hugging Face等法国企业已经融资23亿美元,比英国、德国AI创业公司都要多。 一名大学生走出校门凭借聪明才智和一个黄金点子成为富豪&#…...
完全离线的本地问答模型LocalGPT如何实现无公网IP远程连接提问
文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问,由于localGPT只能通过本地局域网IP地址端口号的形式访问,实现远程访问…...
【算法专题--栈】栈的压入、弹出序列 -- 高频面试题(图文详解,小白一看就懂!!)
目录 一、前言 二、题目描述 三、解题方法 💧栈模拟法💧-- 双指针 ⭐ 解题思路 ⭐ 案例图解 四、总结与提炼 五、共勉 一、前言 栈的压入、弹出序列 这道题,可以说是--栈专题--,最经典的一道题,也是在…...
如何高效安全的开展HPC数据传输,保护数据安全?
高性能计算(HPC)在多个行业和领域中都有广泛的应用,像科学研究机构、芯片IC设计企业、金融、生物制药、能源、航天航空等。HPC(高性能计算)环境中的数据传输是一个关键环节,它涉及到将数据快速、安全地在不…...
算法联盟·全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析
算法联盟全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析 算法联盟 全域数学公理体系下黑洞标量毛发与 LVK 引力波O4 全维理论、求导、证明、计算、验证、分析 所属体系:算法联盟 ROOT 全域数学网格第一性原理(AI科…...
PostgreSQL游标深度解析:大数据集处理与Python应用实践
1. 项目概述:为什么我们需要关注PostgreSQL游标?在数据库开发的世界里,我们常常听到“游标”这个词,尤其是在处理Oracle或SQL Server这类商业数据库时。但在PostgreSQL的语境下,很多开发者,尤其是从其他数据…...
网盘下载提速新方案:8大平台直链获取工具全解析
网盘下载提速新方案:8大平台直链获取工具全解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...
从TLS1.0到TLS1.3:一次Java 17连接SQL Server的报错,带你读懂JDK安全策略的演进与影响
从TLS1.0到TLS1.3:Java 17连接SQL Server的安全协议演进解析 当你在Java 17环境中尝试连接SQL Server数据库时,突然遭遇"TLS10 is not accepted by client preferences [TLS13, TLS12]"的错误提示,这绝非简单的配置问题。这个看似普…...
【SAP工作】1.ECC与S4HANA后台表对比
查看表的Tcode:SE11,SE16N,SM30,SE38FIS4 HANABKPF会计凭证抬头存储凭证编号、日期、公司代码、凭证类型等不变BSEG会计凭证行项目存储科目、金额、税码、成本中心等明细ACDOCABSEG降级SKA1总帐科目主数据(科目表级&am…...
基于AgentPort框架快速构建AI智能体Web应用门户
1. 项目概述:从零到一构建你的AI智能体门户最近在GitHub上看到一个挺有意思的项目,叫agentport,作者是yakkomajuri。光看这个名字,你可能会有点摸不着头脑——“Agent Port”?智能体端口?这到底是干嘛的&am…...
构建数字情绪护盾:基于情感分析与规则引擎的个性化内容过滤系统
1. 项目概述:构建你的数字情绪护盾在数字生活的洪流中,我们每天都被海量的信息、社交互动和网络噪音所包围。你有没有过这样的感觉:刷了半小时手机,不仅没放松,反而感到莫名的焦虑和疲惫?或者,在…...
ARM架构定时器系统原理与优化实践
1. ARM架构定时器系统深度解析在嵌入式系统和实时操作系统中,精确的时间控制是系统可靠性的基石。ARM架构提供了一套完整的定时器硬件机制,通过系统寄存器实现对时间管理的精细化控制。这些定时器不仅用于基础的计时功能,更是任务调度、性能分…...
基于DNS的TEE认证革新:原理、实现与性能优化
1. 项目概述:基于DNS的TEE认证革新在云计算安全领域,可信执行环境(TEE)技术正经历着从专用场景向通用基础设施的演进。传统TEE认证方案如RA-TLS存在两个根本性缺陷:一是依赖客户端主动验证硬件证明,导致非T…...
glm-switch:ChatGLM多版本模型一键切换与环境管理工具详解
1. 项目概述与核心价值 最近在折腾大语言模型本地部署和推理时,遇到了一个挺实际的问题:手头有几个不同版本的 ChatGLM 模型权重文件,比如 GLM-6B、GLM-10B,还有社区微调过的各种版本。每次想切换模型做测试或者对比效果…...
