rust中结构体的属性默认是不能修改的,要想修改可以有两种方式

ops/2024/11/30 14:43:43/

Rust中结构体里面的属性默认是不支持修改的,而且默认不是pub的,要想修改的话,有两种方式,我以为和python里面的类似呢,但是还是需要一点技术含量的。如果想在引到外部修改,需要声明pub,如果想在impl中实现,需要将self参数修改为&mut self。

第一种在impl中修改

需要声明self为可变引用,然后通过在impl中使用self修改

rust">pub struct React {width: String,height: String,
}impl React {pub fn new(w: String, h: String) -> Self {React { width: w, height: h }}pub fn set_height(&mut self, h: String) {self.height = h;}
}

修改的时候,直接创建实例对象,然后调用set_height方法:

rust">    // 创建结构体let mut r = React::new(String::from("2"), String::from("3"));r.set_height(String::from("10000"));

修改后的结果:

rust">warning: `day4` (bin "day4") generated 3 warningsFinished dev [unoptimized + debuginfo] target(s) in 0.01sRunning `target/debug/day4`
React height is:"10000"

第二种声明pub

声明pub后,再使用 . 属性的方式直接修改:

rust">pub struct React {pub width: String,pub height: String,
}let mut r = React::new(String::from("2"), String::from("3"));
// r.set_height(String::from("10000"));
r.height = String::from("6666");

 修改后的结果:

rust">warning: `day4` (bin "day4") generated 2 warningsFinished dev [unoptimized + debuginfo] target(s) in 0.00sRunning `target/debug/day4`
React height is:"6666"


http://www.ppmy.cn/ops/22689.html

相关文章

卫浴品牌商家做展示预约小程序的作用是什么

卫浴品牌类别多、普通/智能、场景化等,无论企业还是经销商市场门店都比较饱满,虽然市场需求度高,但同样需要商家不断拓宽销售渠道和挖掘客户价值,破圈增长。 线上多平台发展尤为重要,而小程序作为连接点,对…

数据分析:扩增子分析(qiime2平台全流程分析)

Amplicon sequencing analysis pipeline through qiime2 platform qiime2是扩增子数据分析的最佳平台之一,其提供了大量从原始data到统计分析的插件,尤其是它的可重复分析且可扩展插件的理念使得其成为扩增子分析首选的平台。 Platform qiime2是扩增子…

linux第八章 git连接本地仓库和gitee

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

免费通配符证书的申请指南——从申请到启动https

如果您的网站拥有众多二级子域名,那么通配符证书证书是最好的选择。 免费通配符申请流程如下: 1 创建证书服务商账号 首先选择一个提供免费通配符的服务商,打开国产服务商JoySSL官网,创建一个账号(注册账号时填写注册…

使用动态ip上网稳定吗?

使用动态IP上网的稳定性并不是一个绝对的“是”或“否”的问题,因为它取决于多种因素。动态IP地址是在需要时才进行分配的,每次上网时,网络服务提供商(如电信)会随机分配一个IP地址给设备。这种分配方式有一些优点&…

Facebook的时间机器:回溯社交媒体的历史

1. 社交媒体的起源与早期模式 社交媒体的历史可以追溯到互联网的早期发展阶段。在Web 1.0时代,互联网主要是一个信息发布平台,用户主要是被动地接收信息。但随着Web 2.0的兴起,互联网逐渐转变为一个互动和参与的平台,社交媒体应运…

python在Django中,如何使用MySQL数据库进行分页怎么实现

在Django中,使用MySQL数据库进行分页是一个相对简单的任务。Django的ORM提供了内置的分页功能,你只需要使用Paginator类即可。以下是一个基本的示例,展示了如何在Django中使用MySQL进行分页: 首先,确保你已经安装了Django和MySQL,并且已经配置了Django项目以使用MySQL数…

全球汽车电动制动用滚珠丝杠市场细分规模分析及预测2024

滚珠丝杠可用于汽车电动制动机构。汽车电动制动助力器产品主要由行程传感器、踏板模拟器、电机、控制器、双级减速机构、滚珠丝杠传动机构、壳体、制动总泵等组成。该机构采用双级减速齿轮和滚珠丝杠的传动方式。双级齿轮采用注塑齿轮和粉末冶金齿轮的复合传动设计,…