티스토리 뷰
728x90
Generic을 공부하면서 아래와 같은 코드를 봤다.
func swap(_ a: inout Int, _ b: inout Int) {
// code
}
Inout ? 그것도 파라미터 자리에? 뭐지..
오늘은 Inout 파라미터에 대해 알아보자!!
Inout parameter
입출력 파라미터 라고도 불리며,
함수에서 직접 파라미터 값에 접근할 수 있도록 해주는 기능이다.
선언 방법
func 함수명(name: Inout Type)
이런식으로 적어준다.
func 함수명(_ 파라미터이름: inout 타입, _ b: inout Int) { }
그리고
인자값을 파라미터로 보내기 위해서는
인자값 앞에
'&'
를 붙여준다.
함수명(&변수, &변수)
일반 함수와 차이.
아래의 예시를 봅시다.
일반적인 함수
func swapTwoInts(_ a: Int, _ b: Int) {
let temporaryA = a
a = b // error >> Cannot assign to value: 'a' is a 'let constant
b = temporaryA // error >> Cannot assign to value: 'b' is a 'let constant
}
일반적으로 swift 함수는 모든 인자가 함수를 호출할 때 상수로 호출 되기 때문에 넘어온 값을 바꿀수 없다.
값을 변경(참조해서 전달) 하고 싶다면 !?
Inout 파라미터를 보자
Inout Parameter
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a // temporaryA = 3
a = b // a = 5
b = temporaryA // b = 3
}
var a = 3
var b = 5
swapTwoInts(&a, &b)
대충 짐작이 오시나요??
Inout parameter는 참조로 전달 할때 사용하기 때문에
값을 변경 할수 있습니다.
728x90
'iOS' 카테고리의 다른 글
[iOS] UIKit 에서 실시간 Preview 보는 방법 (0) | 2021.11.05 |
---|---|
[Swift] Generic 제네릭 (0) | 2021.10.30 |
[Swift] 타입프로퍼티, static, class (0) | 2021.10.22 |
공부해야할것 (0) | 2021.10.21 |
[Xcode] 앱 빌드가 느려졌을때 (app launch slow on device) (0) | 2021.10.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift Error Handling
- RTCCameraVideoCapturer
- swift (programmers)
- Swift final
- ios
- Swift ModernRIBs
- iOS error
- CS 네트워크
- Swift 프로그래머스
- Swift inout
- 원티드 프리온보딩
- Class
- Combine: Asynchronous Programming with Swift
- Swift
- swift property
- swift protocol
- swift programmers
- Swift joined()
- swift reduce
- Swift RIBs
- RIBs tutorial
- Swift init
- Swift Leetcode
- removeLast()
- 2023년 회고
- Swift 알고리즘
- Swift 프로퍼티
- Swift joined
- Swift 내림차순
- swift 고차함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함