首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么是"..“Rust中struct文字中的语法?

什么是"..“Rust中struct文字中的语法?
EN

Stack Overflow用户
提问于 2018-01-22 19:39:33
回答 1查看 7.9K关注 0票数 18

std::default::Default文档中:

代码语言:javascript
运行
AI代码解释
复制
#[derive(Default)]
struct SomeOptions {
    foo: i32,
    bar: f32,
}

fn main() {
    let options = SomeOptions { foo: 42, ..Default::default() };
}

..前缀对Default::default()的返回值有什么影响?为什么这里需要它?它看起来就像是一个扩散运算符,但我不确定。我知道..Default::default()在做什么--用SomeOptions的默认值填充剩余的结构参数,但不知道..是如何工作的。这个操作员的名字是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-22 19:49:27

这是struct update syntax。它“需要”的只是有一种简洁的方式将一个结构的所有成员移动/复制到一个新的结构中,可能需要做一些小的修改。

写这段代码的“长”方法是:

代码语言:javascript
运行
AI代码解释
复制
let a = SomeOptions::default();
let options = SomeOptions { foo: 42, bar: a.bar };

您确实可以认为它类似于JavaScript的“扩展”运算符,但是Rust的所有权和强类型的细微差别仍然起作用,因此它并没有得到广泛的使用。例如,您不能使用此语法在不同类型的值之间切换。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48389072

复制
相关文章
Rust: Struct的Update语法
然后,我们先是声明了第一个实例,叫做ord_1.并且为这个ord_1设置了一些值。
灯珑LoGin
2023/10/18
1630
Rust中struct的function与method
一个示例就能看明白,关键处皆有注释,大致要点:impl 一个struct时, 1.如果方法参数为&self,则为方法 ,可以用"对象实例.方法"来调用 2.如果方法参数不是&self,则为函数,只能用"struct名::函数名"来调用
菩提树下的杨过
2021/11/11
7030
golang之Struct什么是结构体struct?
最近在复习golang,学习的东西,如果不使用,很快就会忘记。所以,准备复习完golang,做一个练手的小项目,加深对golang的学习。今天开始公司,进入封闭式开发,所以每天晚上回来,学习golan
若与
2018/04/25
1.7K0
golang之Struct什么是结构体struct?
python中的struct
我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组,字典。但是C语言中有些字节型的变量,在python中该如何实现呢?这点颇为重要,特别是要在网络上进行数据传输的话。
py3study
2020/01/10
5350
Rust中的所有权是什么
所有权(系统)是 Rust 最为与众不同的特性,对语言的其他部分有着深刻含义。它让 Rust 无需垃圾回收(garbage collector)即可保障内存安全,因此理解 Rust 中所有权如何工作是十分重要的。本文,我们将讲到所有权以及相关功能:借用(borrowing)、slice 以及 Rust 如何在内存中布局数据。 所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。
共饮一杯无
2022/12/07
6170
什么是中台?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户1212940
2019/11/03
9870
[译] 什么是Javascript中的提升
JS 初学者可能会碰到“变量提升”、“函数声明提升”等术语。在深入讨论任何“提升(hoisting)”的定义之前,先举个例子 -- 定义一个函数并调用:
江米小枣
2020/06/15
8090
什么是:语法糖、语法盐、语法糖精
概述 名词 别称 英文名 解释 语法糖 糖衣语法 Syntactic sugar 指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。 语法盐 syntactic salt 指的是让写出坏代码更难的语法特性。这些特性强迫程序员做出一些基本不用于描述程序行为,而是用来证明他们知道自己在做什么的额外举动。 语法糖精 语法糖浆 syntactic saccharine 指的是未能让编程更加方便的附加语法。 ---- ---- Ref: 维基百科 ---- ----
JNingWei
2018/09/27
2.9K0
Rust中的workspace
java项目中用maven管理代码时,如果遇到大型工程,一般会拆分成不同的模块,比如spring-mvc中,通常会按model, view, controller建3个模块,然后根据一定的依赖关系进行引用。这个概念在Rust中是通用的,只不过maven换成了cargo,而模块变成了crate,看下面的例子。
菩提树下的杨过
2021/11/24
9340
Python中struct.pack()和struct.unpack()用法
python中的struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~。一般输入的渠道来源于文件或者网络的二进制流。
周小董
2019/03/25
16.4K2
Python中struct.pack()和struct.unpack()用法
一文读懂什么是中台?什么是数据中台?
按照数据咨询公司Thoughtworks首席咨询师王健给出的10个字定义,中台就是:
CloudBest
2019/10/15
2.1K0
一文读懂什么是中台?什么是数据中台?
java的IO技术中什么是I什么是O?
马克-to-win:很多老司机还搞不清什么是I什么是O。很简单,我有个土办法。以内存为单位,数据进内存叫In,出内存叫Out。读文件,是数据从硬盘进到内存,所以用in类型流来处理。
马克java社区
2021/05/06
1.5K0
java的IO技术中什么是I什么是O?
java中什么是重载什么是重写_java的重载
1、重载(overload)是发生在同个类中的具有相同的方法名,不同的参数类型(不同的参数类型包括:参数的个数和参数的类型和顺序不同),返回值相同或者不同的一种多态的体现。从返回值类型相同或者不相同可以看出,我们不能根据方法的返回值来判断是否为重载。
全栈程序员站长
2022/09/30
1.6K0
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
ConardLi
2019/09/23
5860
漫画:什么是中台?
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
用户5927304
2019/09/19
5990
漫画:什么是中台?
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
数据森麟
2019/09/27
5340
漫画:什么是中台?
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
IT阅读排行榜
2019/09/25
5110
漫画:什么是中台?
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
程序员小强
2019/09/25
7420
漫画:什么是中台?
java中什么是引用[通俗易懂]
如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。其实GC时主要看这个对象是否有引用指向该对象。按照这种引用的强弱的关系, 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
全栈程序员站长
2022/07/06
8350
漫画:什么是中台?
在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。
互扯程序
2019/09/24
5420
漫画:什么是中台?

相似问题

Swift是否有与Rust的struct update语法等效的语法?

17

打印Rust中的所有struct字段

20

Rust中的多行整数文字

05

c++中的" struct * struct newStruct(int somedata) {}“语法是什么

10

在Struct Vec中寻找Struct,然后对Rust中Struct执行特征函数的惯用方法

116
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文