Rust言語の勉強を初めてみた。その4
Functions
https://doc.rust-lang.org/book/ch03-03-how-functions-work.html
mainがプログラムの最初に実行される関数。
Rustの関数名はスネークケース(すべて小文字で、単語を"_"で区切る)が一般的。
fn main() {
println!("Hello, world!");
another_function();
}
fn another_function() {
println!("Another function.");
}
関数はfnで始まり、関数名の後に()をつける。{}の中は関数本体を表す。
定義した関数は関数名()で呼び出す。
Function Parameters
関数には引数を持たせることができる。
fn main() {
another_function(5);
}
fn another_function(x: i32) {
println!("The value of x is: {}", x);
}
引数には型注釈が必要。
カンマ区切りで引数を複数持たせることができる。
fn main() {
another_function(5, 6);
}
fn another_function(x: i32, y: i32) {
println!("The value of x is: {}", x);
println!("The value of y is: {}", y);
}
Function Bodies Contain Statements and Expressions
ステートメントは、値を返さないアクション。
fn main() {
let x = (let y = 6);
}
let y = 6はステートメントで値を返さないため、xには値は入らない(ビルドエラー)
fn main() {
let x = 5;
let y = {
let x = 3;
x + 1
};
println!("The value of y is: {}", y);
}
x+1には;が無いため、
{
let x = 3;
x + 1
};
の部分が一つの式となり、その式を評価した結果(4)がyに入る。
Functions with Return Values
関数は値を返すことが出来る。
矢印(->)の後に型を付ける。
関数の戻り値は関数本体のブロック内の最終式の値となる。
returnで任意の位置で戻ることも出来る。
fn five() -> i32 {
5
}
fn main() {
let x = five();
println!("The value of x is: {}", x);
}
five()には5という数字しか無いが、Rustでは有効な関数。
five()はi32型の5という数字が返る。
これは
let x = 5;
と同じ。
fn main() {
let x = plus_one(5);
println!("The value of x is: {}", x);
}
fn plus_one(x: i32) -> i32 {
x + 1
}
これは The value of x is: 6と出力される。
しかし、x + 1;と書くと、ビルドエラーとなる。
関数の戻り値の型がi32と示されているのに対し、ステートメント(x + 1;)は値を返さないため、型の不一致となる。
Author And Source
この問題について(Rust言語の勉強を初めてみた。その4), 我々は、より多くの情報をここで見つけました https://qiita.com/takishita2nd/items/fbc0776d0d84eb5adfdd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .