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(&"만쥬")
반응형