[Swift] 함수

민니·2022년 7월 1일
0

Swift 문법

목록 보기
5/17

함수 ❓

  • 프로그래밍의 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여, 구조화한 객체
  • 간단한 방식으로 여러 번 호출 가능하여 효율성 UP
  • 입력값: 인자값 or 파라미터라고 부름
  • 결과값: 반환값 or 리턴값이라고 부름

종류설명
일반 함수프로그래밍 언어나 프레임워크 수준에서 제공하는 함수 0 기본적인 데이터의 처리나 연산등을 수행함. ex) print()
사용자 정의 함수사용자가 원하는 기능을 실행해 줄 함수를 직접 만들어 사용


사용자 정의 함수

정의 형식

func 함수 이름(매개변수1: 타입, 매개변수2: 타입,...) -> 반환타입 {
	return 반환값
}
  1. 매개변수 x 반환값 x
func printHello() {
	print("안녕하세요")
}
  1. 매개변수 x 반환값 o
func sayHello -> String {
	let returnValue = "안녕하세요"
    return returnValue
}
  1. 매개변수 o 반환값 x
func printHelloWithName(name: String) {
	print("\(name)님, 안녕하세요")
}
  1. 매개변수 o 반환값 o
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: 문법편

0개의 댓글