함수는 특정작업을 수행하는 코드 모음 형태입니다. 무슨 동작을 하는지 함수에 특정 이름을 줄 수 있다. 함수는 실행을 완료하면 전달된 변수를 수정하는 inout 파라미터로 전달 가능하다. 또한 스위프트에서 모든 함수는 파라미터 타입과 반환타입으로 구성된 타입이 있다.

함수의 정의 및 호출

함수를 호출하려면 함수의 이름으로 호출해야 하며, 함수의 파라미터와 일치하는 인자라고 알려진 입력값을 전달해야 한다. 함수의 인자는 파라미터 순서와 동일하게 제공해야 한다.

func greet(person : String) -> String {
	let greeting = "Hello," + person + "!"
    return greeting
}
//다음은 문자열 타입의 파라미터를 받아서 문자열 타입을 반환하는 함수이다.

greet(person : "Devleeky16498")
//다음처럼 함수의 명칭과 파라미터의 인자를 넣어 호출한다.

func greet(person : String) -> String {
	return greeting = "Hello," + person + "!"
}
//다음처럼 바디를 더 짧게 하기 위해서 생성과 반환을 한 줄로 결합할 수 있다.

함수의 파라미터와 반환값

  1. 파라미터가 없는 함수는 입력 파라미터의 정의를 요구하지 않는다. 예시 함수는 호출될 때마다 항상 같은 String 메세지를 반환하는 입력파라미터가 없는 함수이다.
func sayHello() -> String {
	return "hello world"
}
print(sayHello())
  1. 여러개 파라미터가 있는 함수는 소괄호 내 콤마로 이를 구분해서 여러개의 파라미터를 가질 수 있다.
func sayHello(a: String, b: String) -> String {
	return a + b
}
print(sayHello())
//위 함수는 2개의 String 파라미터를 가지는 함수다.
  1. 반환값이 없는 함수는 반환타입의 정의를 요구하지 않는다. 다음 함수는 반환타입이 없는 함수이다. 반환값을 정의하지 않았지만 반환값이 있는 상태이다. 반환 타입이 정의되지 않은 함수는 Void 타입의 특별한 값을 반환한다. 이는 ()로 쓰여진 튜플 값이다.
func greet(person: String) {
	print("Hello, \(person)")
}

greet(person: "Dave")
//함수는 출력을 실행한다.

여러개의 반환값이 있는 함수

여러개의 값을 반환하기 위해서 함수의 반환타입으로 튜플을 사용할 수 있다.

func sayHello(a : Int) -> (Int, Int) {
    return (a, a)
}
//다음과 같이 튜플 값으로 담아서 다수의 반환값을 핸들링할 수 있다.

암시적 반환을 가진 함수

함수의 전체바디가 한줄로 표현되면, 함수는 맹목적으로 표현식을 반환한다.

func greeting(for person : String) -> String {
	"Hello," + person + "!"
}
// 다음과 같이 return이라는 단어를 명시하지 않아도, 저렇게 단순하게 1줄로 쓰여있다면 표현식을 반환한다.
profile
Welcome to Growing iOS developer's Blog! Enjoy!🔥

0개의 댓글

Powered by GraphCDN, the GraphQL CDN