일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 회고
- 코드스니펫
- On branch is up to date with ' '
- class
- 주간 달력
- 다짐글
- MyLife
- SWIFT
- 내_삶
- 바이트디그리
- AnyObject
- 생명주기
- 글또9기
- Switch
- ios 개발 강의
- 글또
- uikit
- Git
- K디지털기초역량훈련
- IOS
- 제어전송문
- 파스칼표기법
- error해결
- actionSheet
- avaliable
- 연관값
- weekly calendar
- copy-on-write
- unrecognized selector sent to class
- struct
- Today
- Total
seong_hye, the developer
Swift) 문법 정리 - 함수 본문
코딩에서 가장 중요한 것은 반복작업을 최소화하는 일이겠죠?
이 작업을 효율적으로하는 것이 바로 함수를 잘 이용하는 것이라고 할 수 있습니다.
함수가 무엇일까?
특정 작업을 수행하기 위해 호출할 수 있게 이름 붙여진 코드 블럭
정의하고 호출(또는 실행)하는 방법으로 실행됨
값(매개변수)를 받아 산술식을 수행하며 계산 결과가 반환되도록 할 수 있음
func 함수명(매개변수명: 매개변수 타입,...) -> 리턴타입 {
//code
}
함수명(인자명: 인자값)
매개변수와 인자의 차이는 무엇일까?
매개변수(파라미터): 함수의 정의에 입력값으로 사용되는 변수(상수)
인자(아규먼트): 함수의 호출에 사용되는 실제 값
아규먼트 레이블 사용 시
파라미터를 외부에서 볼 때, 함수 호출 시 사용하려는 이름
func plusFunction(number1 a: Int, number2 b: Int) -> Int {
return a + b
} // number1과 number2 => 아규먼트 레이블
var number = plusFunction(number1: 5, number2: 4)
와일드카드 패턴 사용 시
언더바(_)를 사용해서 아규먼트 레이블 생략 가능
func minusFunction(_ a:Int, _ b: Int) -> Int {
return a - b
}
var number = minusFuction(5,4)
가변 파라미터 사용
정해지지 않은 여러 개의 파라미터를 받을 때
하나의 파라미터로 2개 이상의 아규먼트를 전달할 할 수 있음 => 배열 형태
개별함수마다 하나씩만 선언할 수 있음
기본 값을 가질 수는 없음
func plusFunction(_ numbers: Int...) -> Int {
var total = 0
for num in numbers {
total += num
}
}
var num = plusFunction(5,8,2,6,1) //22
기본값 설정 가능
값을 주지 않을 경우 기본값 사용
func numFunction(num1: Int, num2: Int = 9) -> Int {
var result = num1 + num2
return result
}
var number = numFunction(num1: 3) // 12 (3 + 9)
함수 사용 시 주의 사항
- 파라미터는 변수가 아닌 상수이고, 함수 내부적으로만 쓰이므로 값의 변경이 불가능
- 함수 내에서 선언한 변수는 함수 내에서 밖에 사용하지 못함
- return 키워드의 경우 리턴타입이 있으면 결과를 리턴하면서 함수를 중지하지만
리턴타입이 없으면 함수 실행을 중지하고 함수를 벗어남
- 리턴 타입이 있는 함수를 호출하는 경우, 함수를 호출 자체로 표현식이라는 것을 인지할 필요 있음
- 함수 내부에서 함수를 작성하여 사용하는 것도 가능 (중첩 가능)
함수를 사용하는 이유가 무엇일까?
- 반복되는 동작을 단순화해서 재사용 가능
- 코드를 논리적 단위로 구분 가능 (기능을 모듈화)
- 코드의 길이가 긴 것을 단순화해서 사용 가능
- 미리 함수를 잘 만들어 놓으면, 개발자는 사용만 하면 됨
참고자료)
'IOS' 카테고리의 다른 글
Swift) 문법 정리 - 반복문 (0) | 2022.07.12 |
---|---|
Swift) 문법 정리 - 조건문 (0) | 2022.07.12 |
Swift) 문법 정리 - 컬렉션 타입 (Collection) (0) | 2022.07.12 |
Swift ) 문법정리 - 데이터 타입 (0) | 2022.07.12 |
Swift) 문법 정리 - 변수와 상수 (0) | 2022.07.12 |