Rust - Functions

Mickey·2022년 1월 13일
0

Rust

목록 보기
12/32
post-thumbnail
post-custom-banner

https://www.tutorialspoint.com/rust/rust_functions.htm

함수는 읽기, 유지보수 및 재사용이 가능한 코드의 빌딩 블록
함수는 특정 작업을 수행하기 위한 일련의 명령문
함수는 프로그램을 논리적 코드 블록으로 구성
일단 정의되면 코드에 액세스하기 위해 함수를 호출할 수 있음
함수를 사용하면 프로그램 코드를 쉽게 읽고 유지 관리할 수 있음

함수 선언은 컴파일러에게 함수의 이름, 반환 유형 및 매개변수에 대해 알림

Sr.No.FunctionDescription
1Defining a functionTA 함수 정의는 특정 작업이 수행되는 대상과 방법을 지정
2Calling or invoking a Function함수를 실행하려면 호출 해야함
3Returning Functions함수는 제어와 함께 호출자에게 값을 반환할 수도 있음
4Parameterized Function매개변수는 함수에 값을 전달하는 방식

함수 정의

함수 정의는 특정 작업이 수행되는 대상과 방법을 지정
함수를 사용하기 전에 정의해야 함
함수 본문에는 함수에서 실행해야 하는 코드가 포함
이름 규칙은 변수와 비슷함
fn 키워드를 이용하여 정의

fn function_name(param1,param2..paramN) {
   // function body
}

함수 선언은 선택적으로 매개변수/인수를 포함
매개변수는 함수에 값을 전달하는 데 사용

함수 호출

function_name(val1,val2,valN)
fn main(){
   //calling a function
   fn_hello();
}
//Defining a function
fn fn_hello(){
   println!("hello from function fn_hello ");
}

값 반환

// Syntax1
fn function_name() -> return_type {
   //statements
   return value;
}
//Syntax2
fn function_name() -> return_type {
   value //no semicolon means this value is returned
}
fn main(){
   println!("pi value is {}",get_pi());
}
fn get_pi()->f64 {
   22.0/7.0
}

매개 변수

매개변수는 함수에 값을 전달하는 방식
매개변수는 함수 서명의 일부를 형성
매개변수 값은 호출 중에 함수에 전달
명시적으로 지정하지 않는 한 함수에 전달되는 값의 수는 정의된 매개변수의 수와 일치해야 함

Pass by Value

메서드가 호출되면 각 값 매개변수에 대해 새 저장 위치가 생성
실제 매개변수의 값이 복사
호출된 메서드 내부의 매개변수에 대한 변경 사항은 인수에 영향을 미치지 않음

fn main(){
   let no:i32 = 5;
   mutate_no_to_zero(no);
   println!("The value of no is:{}",no);
}

fn mutate_no_to_zero(mut param_no: i32) {
   param_no = param_no*0;
   println!("param_no value is :{}",param_no);
}

Pass by Reference

매개변수를 참조로 전달할 때는 Pass by Value와 달리 이러한 매개변수에 대한 새 저장 위치가 생성되지 않음
참조 매개변수는 메소드에 제공되는 실제 매개변수와 동일한 메모리 위치
변수 이름 앞에 & 를 붙여 매개변수 값을 참조로 전달
* 연산자는 변수 param_no가 가리키는 메모리 위치에 저장된 값에 액세스하는 데 사용

fn main() {
   let mut no:i32 = 5;
   mutate_no_to_zero(&mut no);
   println!("The value of no is:{}",no);
}
fn mutate_no_to_zero(param_no:&mut i32){
   *param_no = 0; //de reference
}

Passing string to a function

fn main(){
   let name:String = String::from("TutorialsPoint");
   display(name); 
   //cannot access name after display
}
fn display(param_name:String){
   println!("param_name value is :{}",param_name);
}

profile
Mickey
post-custom-banner

0개의 댓글