Rust中的结构体及方法语法

Posted aguncn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust中的结构体及方法语法相关的知识,希望对你有一定的参考价值。

这个可以和类作比较,或是go当中的方法比较。

#[derive(Debug)]
struct Rectangle 
    width: u32,
    height: u32,


impl Rectangle 
    fn area(&self) -> u32 
	self.width * self.height
    
    
    fn square(size: u32) -> Rectangle 
	Rectangle width: size, height: size
    


impl Rectangle 
    fn can_hold(&self, other: &Rectangle) -> bool 
	self.width > other.width && self.height > other.height
    


fn main() 
    let rect1 = Rectangle  width: 30, height: 50;
    let rect2 = Rectangle  width: 10, height: 40;
    let rect3 = Rectangle  width: 60, height: 45;

    println!("Can rect1 hold rect2? ", rect1.can_hold(&rect2));
    println!("Can rect1 hold rect3? ", rect1.can_hold(&rect3));
    println!("rect1 is :#?", rect1);
    println!(
	"The area of retangle is  square pixels", rect1.area()
    );
    println!(
        "The area of retangle is  square pixels", area(&rect1)
    );

    let sq = Rectangle::square(5);

    println!("square is :#?", sq);
    println!("The area of Square is  square pixels", sq.area());


fn area(rectangle: &Rectangle) -> u32 
    rectangle.width * rectangle.height

  技术图片

以上是关于Rust中的结构体及方法语法的主要内容,如果未能解决你的问题,请参考以下文章

go语言结构体及方法的一些细节笔记

C++ SOCKET发送结构体及接收

一天一门编程语言Rust 语言程序设计极简教程

上传文件结构体及类型对照

3. fileinode结构体及chardevs数组等相关知识解析

3. fileinode结构体及chardevs数组等相关知识解析