티스토리 뷰
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
- removeLast()
- Class
- Swift 프로퍼티
- Swift inout
- swift property
- swift reduce
- CS 네트워크
- swift protocol
- 2023년 회고
- swift 고차함수
- Swift Error Handling
- Swift 프로그래머스
- Swift RIBs
- RTCCameraVideoCapturer
- ios
- Swift
- Swift final
- Swift joined()
- 원티드 프리온보딩
- Swift 내림차순
- Swift 알고리즘
- Swift ModernRIBs
- swift (programmers)
- iOS error
- Swift joined
- swift programmers
- Combine: Asynchronous Programming with Swift
- Swift init
- Swift Leetcode
- RIBs tutorial
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함