티스토리 뷰
프로그래밍에 없어서는 안 될 Fuction의 개념에 대해서 정리하겠습니다~
Fuction 이란?
- 어떤 기능을 수행하는 코드 블록입니다.
- func 이란 키워드를 통해서 선언할 수 있습니다.
- 파라미터의 존재 여부, return 값의 존재 여부에 따라서 다양한 형태로 표현할 수 있습니다.
기본형
func printValue(value: String) -> Void {
print("\(value) Hi")
}
//호출 시
printValue(value: "Swift")
//"Swift Hi" 출력
- 함수 이름 옆에 파라미터 값을 받을 파라미터 이름과 타입을 함께 적습니다.
- 파라미터 옆에 -> return할 값의 타입을 적어줍니다. ex) -> Int, -> String
- return 할 값이 없을 경우 -> Void 를 사용해도 되고 생략해도 됩니다.
- \() 는 Swift에서 문자열 내에서 변수/상수를 호출할 때 사용합니다.
- 호출할 때는 함수 이름과 함께 파라미터 이름과 값을 적습니다. ex) printValue(value: "Swift")
만약 파라미터 이름을 적기 싫다면?
func printValue(_ value1: String, _ value2: String) {
print("\(value1), \(value2)")
}
//호출 시
printValue("Swift", "Programming")
//"Swift, Programming" 출력
- 파라미터 이름 앞에 _(underscore)를 사용하게 되면 호출 시 파라미터 이름을 적지 않아도
순서에 맞게 할당되는 것을 알 수 있습니다.
만약 파라미터에 디폴트 값을 지정하고 싶다면?
func printSum(num1: Int = 100, num2: Int) {
print("Sum : \(num1 + num2)")
}
//호출 시
printSum(num2: 200) // 300
printSum(num1: 300, num2: 100) // 400
- 파라미터에 디폴트 값을 지정하고 싶다면 파라미터 이름과 타입을 선언할 때 값도 지정해줍니다.
- 지정해주게 되면 따로 호출하지 않을 경우에도 지정된 값으로 계산이 됩니다.
- 다른 값을 넣어서 호출하면 새로 넣은 값으로 계산됩니다.
만약 파라미터가 따로 없다면?
func printHi() {
print("Hi")
}
//호출 시
printHi()
- 파라미터를 적지 않고 선언하고, 호출할 때에도 파라미터를 적지 않으면 됩니다.
파라미터의 값을 바꾸는 연산을 하고 싶다면?
var value = 3
func valueIncrement(_ value : inout Int) {
value += 1
print(value) // 4
}
valueIncrement(&value)
- Swift의 파라미터는 기본적으로 상수입니다.
- 그렇기 때문에 function 내에서 파라미터의 값을 변경하고 싶을 땐 inout 키워드를 사용해야 합니다.
- 함수 내로 값을 바꾸고 싶은 변수의 주소 값을 넣으면 파라미터의 값을 변경할 수 있습니다.
Reference :
'Swift' 카테고리의 다른 글
[iOS] Swift 열거형 (enum) (0) | 2021.02.22 |
---|---|
[iOS] Swift Collection Types (Array, Dictionary, Set) (0) | 2021.02.17 |
[iOS] Swift Optional(Optional Binding) (0) | 2021.02.10 |
[iOS] Swift 반복문 (While 문, For 문) (0) | 2021.02.07 |
[iOS] Swift 조건문(If~ else문, Switch문) (0) | 2021.02.06 |
- Total
- Today
- Yesterday
- 쓰레드
- Xcode
- 디프만
- cs
- webcrawl
- 프로세스
- 스레드
- swiftsoup
- PHImageRequestOptions
- PHAsset
- isNetworkAccessAllowed
- 개발대외활동
- WKUIDelegate
- 개발동아리
- 부캠
- ios
- 운영체제
- 멀티프로세스
- URLComponents
- 스냅킷
- returnKey
- setBackgroundColor
- 슈퍼스칼라
- RxSwift
- Swift
- sharedmemory
- rxcocoa
- optional
- OS
- 프로세스간통신
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |