Language/Swift-Basic
Swift - 매소드 매개변수
Jessi :D
2022. 2. 25. 17:15
메소드
매개변수 name을 받는 메소드
_ 언더바를 넣어 메소드 호출시에 이름 안써도 됨
func sayName(_ name: String) {
// 받은 매개변수를 이용해 프린트로 출력
print("안녕? \(name) 라고 해")
}
sayName("만쥬")
// 안녕? 만쥬 라고 해
inout
메소드에 매개변수로 들어오는 값은 변경 할 수가 없다,
하지만, inout 키워드를 이용하면 값 변경 가능
func sayHi(_ name: inout String) {
name = "개발하는 " + name
print("안녕? \(name) 라고 해")
}
변수선언
inout 메소드에 들어가는 값은 자체가 상수이기 때문에,
메소드에 바로 값을 넣지 못한다.
값이 변경 가능해야 되기 빼문에 변수에 값을 한번 담은 후 넣어준다.
// 변수선언
var name = "만슈니"
inout 매개변수라고 해당 변수앞에 &를 달아서 알려준다.
sayHi(&name)
// 안녕? 개발하는 만슈니 라고 해
컴파일에러
변수로 넣지 않고 바로 값을 넣으면 에러가 난다.
sayHi(&"만쥬")
// error: cannot pass immutable value as inout argument: literals are not mutable
// sayHi(&"만쥬")
반응형