본문 바로가기

iOS/Swift

함수

함수

: 함수는 작업의 가장 작은 단위이자 코드의 집합

 

함수의 정의

func 함수명(파라미터 이름: 데이터 타입) -> 반환 타입 {

  return 반환 값

}

 

함수의 정의 및 호출

두 정수를 파라미터로 전달받아 두 정수의 합을 반환하는 함수를 정의 후에 호출

import UIKit

/*
 func 함수명(파라미터 이름: 데이터 타입) -> 반환 타입 {
	return 반환 값
 }
 */

func sum(a: Int, b: Int) -> Int {
	return a+b
}

sum(a: 100, b: 200)

 

반환 값이 없는 함수의 정의

반환 값이 없는 함수의 경우 반환 타입에 Void  또는 아무것도 입력을 안해주면 된다.

import UIKit

/*
 func 함수명(파라미터 이름: 데이터 타입) -> 반환 타입 {
	return 반환 값
 }
 */

func printName() -> Void {
	
}

func printName2() {
	
}

 

매개변수에 기본 값이 있는 함수

매개변수에 기본 값이 있는 경우 함수 호출 시 파라미터에 값을 전달해주지 않아도 기본 값이

매개변수에 담기게 된다.

import UIKit

/*
 func 함수명(파라미터 이름: 데이터 타입) -> 반환 타입 {
	return 반환 값
 }
 */

func greeting(friend: String, me: String = "Swift") {
	print("Hi, \(friend)! I'm \(me)")
}

greeting(friend: "Python")

 

함수의 파라미터로 전달인자 레이블 사용

파라미터로 전달인자 레이블을 사용하면 좀 더 파라미터의 역할을 명확하게 알 수 있으며

코드의 가독성도 올라간다.

import UIKit

/*
 func 함수명(전달인자 레이블: 매개변수 이름: 매개변수 타입, 전달인자 레이블: 매개변수 이름: 매개변수 타입) -> 반환 타입 {
	return 반환 값
 }
 */

func sendMessage(from myName: String, to name: String) -> String {
	return "Hi \(name) I'm \(myName)"
}

sendMessage(from: "Swift", to: "Python")

 

함수의 파라미터로 전달인자 레이블을 사용하지 않을 때

함수 호출 시 전달인자로 값만 넘겨주고 싶을 때 사용하는데

함수 정의 시 파라미터명 앞에 _를 넣어주면된다.

import UIKit

/*
 func 함수명(_ 매개변수 이름: 매개변수 타입, _ 매개변수 이름: 매개변수 타입) -> 반환 타입 {
	return 반환 값
 }
 */

func sendMessage(_ myName: String, _ name: String) -> String {
	return "Hi \(name) I'm \(myName)"
}

sendMessage("Swift", "Python")

 

가변 매개변수를 사용한 함수

함수 호출 시 몇 개의 인자를 전달받을 지 모를 때 쓰게되는데

해당 매개변수를 배열로 사용할 수 있다.

import UIKit

/*
 func 함수명(매개변수 이름: 매개변수 타입, 매개변수 이름: 매개변수 타입...) -> 반환타입 {
	return 반환 값
 }
 */

func sendMessage(me: String, friends: String...) -> String {
	return "Hi \(friends) I'm \(me)"
}

sendMessage(me: "Swift", friends: "Python", "Java", "C++")

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

Swift stride(from:to:by:)  (1) 2023.09.23
Swift replacingOccurrences(of:with:)  (0) 2023.09.17
프로퍼티  (0) 2023.08.05
옵셔널  (0) 2023.06.17
컬렉션 타입  (5) 2023.06.09