Rust メソッド

メソッドは値に作用する一種の関数
原則的に特定の値を操作する一連のコードなので、特定の値と関連ずけする必要がある

struct Point {
	x: i32,
	y: i32,
}

impl Point {
	fn print(&self) {
		println!("({}, {})", self.x, self.y);
	}
}

fn main() {
	let p = Point {x:10, y:20};
	p.print();
}

### 引数と戻り値を伴うメソッド

struct Point {
	x: i32,
	y: i32,
}

impl Point {
	fn print(&self) {
		println!("({}, {})", self.x, self.y);
	}

	fn mult(&self, n:i32) -> (i32, i32){
		let a = self.x * n;
		let b = self.y * n;
		(a, b)
	}
}

fn main() {
	let p = Point {x:10, y:20};
	p.print();

	let v = p.mult(2);
	println!("{:?}", v);
	let p2 = Point {x:(v.0), y:(v.1)};
	p2.print();
}