Post

Swift - 함수(Function)란? (2)

Swift - 함수(Function)란? (2)

이전 글에 이어서 작성함.

매개 변수(Parameter)

  • 함수가 넘겨받을 수 있는 값(또는 변수)를 의미함.

함수 선언 형식

1
2
3
4
func 함수명(매개변수: 데이터타입) -> 반환타입{
  실행 코드
  return 반환값
}

예시

1
2
3
4
5
func add(a: Int, b: Int) -> Int{
  return a + b
}

print(add(a: 10, b: 20))

결과

1
30

다른 언어들과는 달리 Swift는 메서드를 호출할 때 매개변수명을 통해 인자를 넘기는 것을 확인할 수 있는데, 이것을 인자 레이블이라고 함.
인자 레이블을 따로 선언하거나 생략하는 것도 가능함.

인자 레이블 명시

형식

1
2
3
4
func 함수명(인자레이블명 매개변수: 데이터타입) -> 반환타입{
  실행 코드
  return 반환값
}

예시

1
2
3
4
5
func add(num1 a: Int, num2 b: Int) -> Int{
    return a + b
}

print(add(num1: 10, num2: 20))

결과

1
30

예시에서 확인할 수 있듯이 인자 레이블과 매개변수명은 별개이며, 인자 레이블을 명시하더라도 함수 내부에서는 매개 변수명으로 처리하는 것을 확인할 수 있음.

인자 레이블 생략

  • 언더스코어(_)를 통해 처리 가능함.

형식

1
2
3
4
func 함수명(_ 매개변수: 데이터타입) -> 반환타입{
  실행 코드
  return 반환값
}

예시

1
2
3
4
5
func add(_ a: Int, _ b: Int) -> Int{
    return a + b
}

print(add(10, 20))

결과

1
30

매개 변수로 넘어오는 값은 상수로 선언되어 있어, 직접적으로 값을 변경할 수 없음.

예시

1
2
3
4
5
6
func letTest(_ num: Int){
    num = num + 10
    print(num)
}

letTest(10)

결과

1
2
3
error: MyPlayground.playground:2:5: cannot assign to value: 'num' is a 'let' constant
    num = num + 10
    ^~~

결과에서 확인할 수 있듯이 numlet(상수)로 선언되어 있는 것을 확인할 수 있음.

아래와 같이 변수에 매개 변수를 할당해서 처리하는 것은 가능함.

1
2
3
4
5
6
7
func letTest(_ num: Int){
    var newNum = num
    newNum = newNum + 10
    print(newNum)
}

letTest(10)

결과

1
20
This post is licensed under CC BY 4.0 by the author.