저번 포스팅에서 잠깐 매개변수(Parameter), 반환타입(Return Type)에 대해 설명한 적 있는데, 이 포스팅에서 전달인자(Argument)와 함께 더 자세히 다뤄보고자 한다. 막상 글을 쓰며 정리하려고 하니 머릿속에서 정리가 안 돼서 한참 더 찾아보며 공부한 것 같다.
또 다른 난관의 봉착, 전달인자와 매개변수, 반환타입... 그게 뭔데, 대체 뭔데 너.

전달인자 (Argument)
- 전달인자는 함수나 메서드를 호출할 때 전달되는 값을 의미합니다.
- 함수나 메서드를 호출할 때, 전달인자를 통해 해당 함수, 메서드에 필요한 정보를 전달하거나 특정 동작을 지시할 수 있습니다.
- 전달인자는 함수나 메서드의 매개변수(parameter)에 전달되어 함수나 메서드가 실행될 때 사용됩니다.
전달인자 사용 예시
func greet(person: String) {
print("Hello, \(person)!")
}
greet(person: "Alice") // "Hello, Alice!" 출력
"Alice"가 greet 함수의 전달인자로 사용 됨
전달인자의 역할
- 전달인자를 통해 함수나 메서드에 필요한 데이터 전달
- 전달인자를 사용하면 함수나 메서드를 재사용 및 다양한 상황에서의 활용
- 전달인자를 통해 함수나 메서드의 동작 제어
매개변수 (Parameter)
- 매개변수는 함수나 메서드를 정의할 때 사용되는 변수로, 함수나 메서드 호출 시 전달된 전달인자를 받는다.
- 함수나 메서드를 정의할 때, 매개변수는 함수나 메서드의 동작을 제어하는 데 사용됩니다.
- 함수나 메서드의 매개변수는 호출 시 전달되는 값에 대한 이름과 타입을 가지고 있습니다.
매개변수의 구성 요소
- 이름 (Name): 파라미터를 식별하는 데 사용되는 이름, 함수 내에서 이 이름을 사용해 파라미터에 접근할 수 있음
- 타입 (Type): 파라미터가 수용할 수 있는 값의 종류를 나타냄,
Swift는 타입 시스템을 가지고 있어 파라미터의 타입을 명확하게 지정해야 함
매개변수 사용 예시
func greet(person: String) {
print("Hello, \(person)!")
}
"person"이 greet 함수의 매개변수
여기서 잠깐! 전달인자(Argument)와 매개변수(Parameter)는 무슨 차이를 가졌을까?
더보기
전달인자는 함수나 메서드를 호출 할 때 실제로 전달되는 값을 의미하지만, 매개변수는 함수나 메서드의 정의 부분에서 선언된 변수를 의미한다. 또 전달인자는 매개변수에 전달되어 함수나 메서드 내부에서 사용되거나 함수나 메서드가 실행될 때 필요한 데이터나 동작을 지정하는 데 중요한 역할을 합니다.
반환 타입 (Return Type)
- 리턴 타입은 함수가 실행된 후 반환하는 값의 종류를 나타냅니다.
- 함수가 값을 반환하지 않는 경우, 리턴 타입은 Void로 지정됩니다.
- 함수의 리턴 타입은 함수의 정의에 화살표 기호를 사용하여 지정합니다.
반환 타입 사용 예시
두 정수를 받아 더한 결과를 반환하는 함수
func add(a: Int, b: Int) -> Int {
return a + b
}
문자열을 받아 문장을 반환하는 함수
func greet(name: String) -> String {
return "Hello, \(name)!"
}
반환 값이 없는 함수
func printMessage(message: String) -> Void {
print(message)
}
오류를 발생시키는 함수 (반환 타입: Never)
func fatalErrorFunction() -> Never {
fatalError("This function always crashes")
}
여러 값을 반환하는 함수 (반환 타입: 튜플)
func minMax(array: [Int]) -> (min: Int, max: Int)? {
guard let min = array.min(), let max = array.max() else {
return nil
}
return (min, max)
}
구조체를 반환하는 함수
struct Person {
var name: String
var age: Int
}
func createPerson(name: String, age: Int) -> Person {
return Person(name: name, age: age)
}
반환 타입의 사용
- 값을 계산하거나 생성하는 함수의 경우, 적절한 반환 타입을 지정
- 작업을 수행하고 결과를 반환할 필요가 없는 경우
Void타입을 사용 - 오류를 발생시키는 경우
Never타입을 사용하여 함수가 정상적으로 종료되지 않음을 나타냄 - 여러 값을 반환해야 하는 경우, 튜플 또는 구조체 사용
'걔 (개발)로그 > Swift' 카테고리의 다른 글
| Swift에서 인스턴스 (Instance) 및 인스턴스 메서드 (Instance Methods) (0) | 2024.05.17 |
|---|---|
| Swift에서 UserDefaults의 정체 (0) | 2024.05.16 |
| Swift에서 옵셔널의 모든 것 (1) | 2024.05.16 |
| Swift에서의 함수? 클래스? 메서드? | 그래서 걔들이 뭔데? (0) | 2024.05.15 |
| Swift에서의 소프트웨어 아키텍처 개념 및 MVVM, MVC 패턴 (0) | 2024.05.15 |