- 프로그래밍의 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여, 구조화한 객체
- 간단한 방식으로 여러 번 호출 가능하여 효율성 UP
- 입력값: 인자값 or 파라미터라고 부름
- 결과값: 반환값 or 리턴값이라고 부름
종류 | 설명 |
---|---|
일반 함수 | 프로그래밍 언어나 프레임워크 수준에서 제공하는 함수 0 기본적인 데이터의 처리나 연산등을 수행함. ex) print() |
사용자 정의 함수 | 사용자가 원하는 기능을 실행해 줄 함수를 직접 만들어 사용 |
정의 형식
func 함수 이름(매개변수1: 타입, 매개변수2: 타입,...) -> 반환타입 { return 반환값 }
func printHello() {
print("안녕하세요")
}
func sayHello -> String {
let returnValue = "안녕하세요"
return returnValue
}
func printHelloWithName(name: String) {
print("\(name)님, 안녕하세요")
}
func sayHelloWithName(name: String) -> String {
let returnValue = "\(name)님, 안녕하세요"
return returnValue
func 함수 이름(<외부 매개변수명><내부 매개변수명>: <타입>, <외부 매개변수명><내부 매개변수명>: <타입>...) {
//함수 내용 작성
}
ex)
//외부 매개변수 사용 x
func printHello(name: String, message: String) {
print("\(name)님, \(message)")
}
printHello(name: "홍길동", message: "안녕하세요")
//외부 매개변수 사용 o
func printHello(to name: String, welcomeMessage message: String) {
print("\(name)님, \(message)")
}
printHello(to: "홍길동", welcomeMessage: "안녕하세요")
func printHello(_ name: String, _ message: String) {
print("\(name)님, \(message)")
}
printHello("홍길동", "안녕하세요")
func 함수 이름(매개변수명: 매개변수 타입...)
ex)
func avg(score: Int...) -> Double {
var total = 0
for r in score {
total += r
}
return (Double(total)/Double(score.count)) //total의 평균값 return
}
print(avg(score: 10,20,30,40))
func 함수 이름(매개변수: 매개변수 타입 = 기본값) {
//실행할 내용
}
ex)
//외부 함수
func outer(base: Int) -> String {
//내부 함수
func inner(inc: Int) -> String {
return "\(inc)를 반환"
}
let result = inner(inc: base+1)
return result
}
outer(base: 3) //4를 반환합니다
출처)
꼼꼼한 재은씨의 Swift: 문법편