iOS/Swift

함수 1편 (함수 정의 및 호출)

밤새는 탐험가89 2024. 1. 14. 02:32

 

함수와 메서드 

기본적으로 함수와 메서드는 동일,

(상황이나 위치에 따라 용어가 다름)

메서드: 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 

함수: 모듈 전체에서 사용하는 함수 

 

 

 

함수의 정의와 호출 

함수(메서드)는 재정의(오버라이드), 중복 정의(오버로드) 지원 

 

매개변수의 타입이 다르다면?

동일한 이름으로 여러 함수 생성 가능 

 

 

기본형태의 함수 정의와 사용 

func 함수 이름(매개변수: 매개변수 타입) -> 반환 타입 {
    실행 구문
    return 반환 값
}

 

func checkFruit(name: String) -> String {
    return "\(name)은 맛이 좋아요"
}

let apple: String = checkFruit(name:"Apple")
print(apple)

// Apple은 맛이 좋아요

매개변수와 전달인자

checkFruit함수에서 "name"이 매개변수,

전달받는 값인 "Apple"이 전달인자

 

 

매개변수가 없는 함수

func market() -> String {
    return "Hello, Market!"
}

print(market())
// Hello, Market

 

 

 

매개변수가 여러 개인 함수 

쉼표( , )를 통해 매개변수 구분 

func fruitInfo(name: String, price: Int) -> String {
    return "이 과일의 이름은 \(name)이고 가격은 \(price)원 입니다."
}

let apple: String = fruitInfo(name: "사과", price: 1000)
print(apple)

// 이 과일의 이름은 사과이고 가격은 1000원 입니다.

 

 

 

 

매개변수 이름과 전달인자 레이블

함수를 정의할 때 매개변수와 전달인자 레이블의 이름을 동일하게 할 수 있으나

별도로 전달인자 레이블을 지정할 경우 

함수 외부에서 매개변수의 역할을 좀 더 명확히 할 수 있음 

 

 

기본 형태

func 함수 이름(전달인자 레이블 매개변수 이름: 매개변수 타입) -> 반환 타입 {
    실행 구문 
    return 반환 값
}

 

 

 

매개변수 이름과 전달인자 레이블을 가지는 함수 정의와 사용 

func sayHello(from myName: String, to name: String) -> String {
    return "Hello \(name)! I`m \(myName)"
}


let toSara: String = sayHello(from: "jenny", to: "sara")
print(toSara)

// Hello sara! I`m jenny

 

★ checkFruit(name: String) 에서는 name이 매개변수 이름과 전달인자 레이블이 같은 이름이기 때문에

함수를 호출할 때 name은 전달인자 레이블임

따라서 toSara 함수 호출할 때는 from, to 전달인자 레이블을 사용해야함

만약에 매개변수 이름 myName, name을 쓴다면? 오류 발생 ★

 

만약에 전달인자 레이블을 별도로 사용하고 싶지 않다면?

전달인자 레이블 자리에 와일드 카드 식별자를 사용 

 

'iOS > Swift' 카테고리의 다른 글

함수 3편 (중첩 함수)  (1) 2024.01.15
함수 2편 (매개변수, 데이터 타입)  (0) 2024.01.14
흐름 제어 (반복문)  (0) 2024.01.12
흐름 제어 (switch 구문)  (0) 2024.01.11
흐름 제어 (if 구문)  (0) 2024.01.10