함수와 메서드
기본적으로 함수와 메서드는 동일,
(상황이나 위치에 따라 용어가 다름)
메서드: 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수
함수: 모듈 전체에서 사용하는 함수
함수의 정의와 호출
함수(메서드)는 재정의(오버라이드), 중복 정의(오버로드) 지원
매개변수의 타입이 다르다면?
동일한 이름으로 여러 함수 생성 가능
기본형태의 함수 정의와 사용
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 |