제라스의 iOS 공부/Swift 문법
[Swift 문법] inout 메소드 매개변수
Xerath(제라스)
2023. 8. 17. 14:29
728x90
반응형
inout이란 키워드도 지난번 부스트캠프 다른 캠퍼 분 코드 컴파일링 시 본 적이 있다.
무슨 기능인지 그 당시엔 넘어갔지만 이번에 정리하고 가고자 한다.
생각보다 쉬운 개념이었다.
import UIKit
// 여기서는 name을 직접 수정하는 일이 없는데, 만약 수정하려고 하면 에러가 뜬다.
// 왜냐하면 매개변수는 기본적으로 let으로 설정되어 있기 때문이다.
func sayName(_ name: String){
print("안녕?! 난 \(name) 라고 해")
}
// 이렇게 inout 키워드를 매개변수의 type 앞에 적어주면 해당 매개변수의 값을 메소드 내에서 변경이 가능하다.
func sayHi(_ name: inout String){
name = "개발하는 " + name
print("안녕?! 난 \(name) 라고 해")
}
// 하지만!!!!!!! 이렇게 하면 안된다. inout 변수에는 반드시 변수가 들어가져야 한다.
sayName("제라스")
// inout 메소드에 들어가는 값은 변경 가능해야 한다.
// 그래서 메소드에 바로 값을 넣지 못하고 변수에 한번 값을 담은 뒤에 넣어야 한다.
var name = "제라스"
// 그리고 inout 매개변수라고 해당 변수 앞에 &을 달아준다.
sayHi(&name)
이렇게 inout 매개변수를 넣을 땐 &를 써줘야 하는 점, &뒤에는 변수에 값을 담아서 전송해줘야 한다는 점.
이 2가지가 inout 키워드를 사용 시 잘 알아두고 가야할 부분인 것 같다.
728x90
반응형