14.结构体struct.rs
//Rust 里 struct 语句仅用来定义,不能声明实例,结尾不需要 ; 符号,而且每个字段定义之后用 , 分隔#[derive(Debug)]
struct Site {domain: String,name: String,nation: String,found: u32
}fn main() {let runoob = Site {domain: String::from("www.runoob.com"),name: String::from("RUNOOB"),nation: String::from("China"),found: 2013};println!("{:?}",runoob);//必须使用key: value 语法来实现定义// let runoob2 = Site {// String::from("www.runoob.com"),// name: String::from("RUNOOB"),// nation: String::from("China"),// found: 2013// };//但是,如果正在实例化的结构体有字段名称和现存变量名称一样的,可以简化书写let domain = String::from("www.runoob.com");let runoob2 = Site {domain,name: String::from("RUNOOB"),nation: String::from("China"),found: 2013};//你想要新建一个结构体的实例,其中大部分属性需要被设置成与现存的一个结构体属性一样,仅需更改其中的一两个字段的值,可以使用结构体更新语法://注意:..runoob 后面不可以有逗号。这种语法不允许一成不变的复制另一个结构体实例,意思就是说至少重新设定一个字段的值才能引用其他实例的值let runoob3 = Site {nation: String::from("Chinese"),.. runoob2};println!("{:?}",runoob3);//元组结构体//元组结构体是一种形式是元组的结构体。与元组的区别是它有名字和固定的类型格式。它存在的意义是为了处理那些需要定义类型(经常使用)又不想太复杂的简单数据#[derive(Debug)]struct Color(u8, u8, u8);struct Point(f64, f64);let black = Color(0, 0, 0);let origin = Point(0.0, 0.0);println!("{:?}",black);println!("{}-{}",origin.0,origin.1);let rect1 = Rectangle { width: 30, height: 50 };println!("rect1's area is {}", rect1.area());let rect2 = Rectangle { width: 40, height: 20 };println!("{}", rect1.wider(&rect2));let rect3 = Rectangle::reate(23,32);println!("rect3 is {:?}", rect3);}#[derive(Debug)]
struct Rectangle {width: u32,height: u32,
}//结构体方法
impl Rectangle {fn area(&self) -> u32{self.width * self.height}fn wider(&self, rect: &Rectangle) -> bool {self.width > rect.width}
}//结构体函数(类似C++构造函数)
impl Rectangle {fn reate(width:u32, height:u32) -> Rectangle{Rectangle{width,height}}
}//单元结构体,结构体可以值作为一种象征而无需任何成员:
struct UnitStruct;
14.结构体struct.rs相关推荐
- linux sock结构体,struct socket结构体详解
在内核中为什么要有struct socket结构体呢? struct socket结构体的作用是什么? 下面这个图,我觉得可以回答以上两个问题. 由这个图可知,内核中的进程可以通过使用struct ...
- 内核中用于数据接收的结构体struct msghdr
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...
- 内核中用于数据接收的结构体struct msghdr以及iovec介绍
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...
- [ C语言 ]指针---结构体(struct)---分支语句(1)---初识C语言末尾
文章目录 前言 一,指针 二,结构体(struct) 三,分支语句(选择结构) 总结 前言 本篇文章主要记录指针末尾,结构体,和分支语句(选择结构) --------------------- ...
- c语言结构体定义蚂蚁,C语言结构体(struct)常见使用方法
C语言结构体(struct)常见使用方法 C语言结构体(struct)常见使用方法 基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合) ...
- linux 结构体 struct addrinfo 简介
目录 定义 相关方法 1. getaddrinfo(const char, const char, const struct addrinfo, struct addrinfo*) 2. freead ...
- 结构体struct timeval 和 struct timespec的定义
结构体struct timeval 和 struct timespec的定义均在头文件<sys/time.h>中,具体定义如下: struct timeval {long tv_sec; ...
- Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...
- C/C++结构体struct 与结构体数组和枚举型enum的结合使用
C/C++结构体struct 与结构体数组和枚举型enum的结合使用 #include "stdafx.h" #include <string> #include &l ...
最新文章
- 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
- spring-boot 添加http自动转向https
- 如何查看python安装路径
- JS异步加载,JQ事件不被执行解决方法
- php 无法识别oci8,php 连接oracle 无法 启用oci8 解决办法 (摘自oracle官网)
- python不同颜色的代码_python日志通过不同的等级打印不同的颜色(示例代码)
- ubuntu16.04中将自己的ubuntu做成镜像
- 回溯____蓝桥 棋盘
- 8. PHP7 安装
- 一键分享java英文_bShare RESTful分享API
- Image Histogram
- 歌词big big no_编程的第二个十年:Big Iron
- ugui scrollview 3d特效 裁减
- 钛磨产品行业调研报告 - 市场现状分析与发展前景预测
- 台式计算机清灰,电脑清理灰尘,教您怎样清理台式电脑灰尘
- python 多进程编程 之 加速kmeans算法
- 互联网大牛们的电脑桌面
- 职场必备的五款有格调的办公软件 让你从此呼风唤雨
- 怎样确保国际会议论文能被EI/ISTP等检索
- matlab数字音效处理器,基于某matlab的数字音效处理器——数字信号处理课设报告材料...