하루에 0.01%라도 성장하자

Develop/Swift

Swift 함수

뚠님 2019. 5. 7. 18:29
반응형

Swift

 

함수는 어느 언어에나 존재한다. 단지 그 문법이 다를뿐 매커니즘은 같다.

 

 

함수 사용법

 

아래 코드는 함수의 사용법을 정리한 것이다.

func 함수이름(매개변수 이름 : 매개변수 타입, 매개변수 이름 : 매배변수 타입 ) -> 반환타입 {
    return 반환값
}


// 일반적인 매개변수 2개와  Int형 반환 func
func sum(a:Int, b:Int) -> Int{
    return a + b ;
}


// 반환값이 없는 함수
// 반환값이 없는 경우 Void를 쓴다.
func print(a:Int, b:Int) -> Void{
    print(a+b);
}

// 매개변수가 없는 경우
func print() -> Int{
    return Int.max;
}

//매개변수와 반환값이 없는경우
func hello() -> Void{
   print("Hello");
}


//호출
sum(a:10, b:20);
hello();

 

보면서 느낀게 함수인 부분은 약간 불편(?)하다라고 생각된다 (아직은)

 

그 느낌을 받게된 이유는 매개변수명 때문인데, 일반적으로 java는 매개변수명을 함수를 호출할 때 사용하지 않는다.

테스트를 해봤는데 함수어 선언된 매개변수명을 똑같이! 작성해줘야 함수가 정상적으로 호출된다.

 

즉 지금은 sum이라는 함수의 매개변수를 a, b로 했는데 개발하면서 작성된 변수의 명을 하나하나 쳐줘야 하니 조금 불편하지 않을까 ...? ( 지금은 호조비라 이런생각 할지도.. )

 

[ Swift 함수 ]

func sum(num1 : Int, num2 :Int) ->Int {
    return num1 + num2;
}

sum(num1 : 10, num2 : 20);

 

[ JAVA 함수 ]

public int sum(int num1, num2){
    return num1 + num2;
}

sum(10,20);

 

 

함수의 기본 값.

 

age의 기본값을 10으로 지정하면 별도의 입력값이 없을 경우 10으로 처리된다.

func printName(name:String, age:Int = 10){
    print("나의 이름은\(name) 이고 나이는 \(age)입니다");
}

 

반응형