TIL: Swift 기초 (2) 2025.06.17

박춘팔·2025년 6월 17일
0

Swift TIL

목록 보기
2/9
post-thumbnail

함수

JS 화살표 함수랑 살짝 짬뽕되어 있는 느낌이라 쉬웠다.

기본적인 함수의 형태

// 함수 선언시
func 함수명(매개변수명: 데이터타입) -> 반환값타입 {
	구문
}

// 함수 호출 시
함수명(매개변수명: 데이터)

// exam
func greet(name: String) -> String{
	let greeting = "Hello, \(name)"
  
  	return greeting
}

greet(name: "Kyusang")

매개변수가 여러개일 경우

func sum(num1: Int, num2: Int) -> Int {
	return num1 + num2
}

sum(num1: 5, num2: 3)

매개변수에 초기값 지정

func sum(num1: Int = 5, num2: Int) -> Int {
	return num1 + num2
}

// Xcode에서 자동완성할 경우 초기값이 있을 경우 num1은 아예 제외하고 num2만 자동완성된다.
sum(num2: 3)

// 아래와같이 입력해도 당연히 동작
sum(num1: 7, num2: 3)

가변 매개변수

// 매개변수의 데이터형 뒤에 ... 을 붙인다.
// 가변 매개변수를 사용할 경우 매개변수에 입력된 값들이 사용될때 배열로 사용됨
func sumOf(numbers: Int...) -> Int{
	var total = 0
    for	number in numbers {
    	total += number
	}
  
  	return total
}

sumOf(numbers: 1,2,3,4,5)

튜플 반환

func sumAndMultiply(num1: Int, num2: Int) -> (sum: Int, multiply: Int) {
	var sum = num1 + num2
    var multiply = num1 * num2
    
    return (sum, multiply)
}

sumAndMultiply(num1: 4, num2: 5).self
=> (sum: 9, multiply: 20)

sumAndMultiply(num1: 4, num2: 5).sum
=> 9

sumAndMultiply(num1: 4, num2: 5).multiply
=> 20

클로저

주변 컨텍스트에서 값을 캡쳐할 수 있고 JS 순수함수랑 닮았다(생긴게)

// 클로저의 기본형
{ (매개변수) -> 반환타입 in 구문 }

// exam
let closure = {
	(name: String) -> String in return "Hello, \(name)"
}
// 이때 return 생략 가능
profile
이것 저것 다해보는 삶

0개의 댓글