이것이 좋은 일이 아니라는 것을 알고 있습니다 만, 이것이 어떻게 작동하는지 매우 궁금합니다.신속한 함수 안에서 여러 개의 명명되지 않은 매개 변수를 참조하는 방법
나는 다음과 같은 함수를 생성하고 전화,하지만 난 참조 할 의미하지 않는 매개 변수
func printMultipleOf_v2(_ : Int, _ : Int) {
//how to reference parameters?
}
printMultipleOf_v2(2, 4)
이것이 좋은 일이 아니라는 것을 알고 있습니다 만, 이것이 어떻게 작동하는지 매우 궁금합니다.신속한 함수 안에서 여러 개의 명명되지 않은 매개 변수를 참조하는 방법
나는 다음과 같은 함수를 생성하고 전화,하지만 난 참조 할 의미하지 않는 매개 변수
func printMultipleOf_v2(_ : Int, _ : Int) {
//how to reference parameters?
}
printMultipleOf_v2(2, 4)
매개 변수가 "무시 매개 변수"라고합니다을 참조하는 방법을 볼 수 없습니다 수 있습니다. 무시 된 매개 변수가 사용되는 이유는 this answer을 참조하십시오.
https://medium.com/swift-programming/facets-of-swift-part-4-functions-3cce9d9bba4에서 "무시 된 매개 변수는 메서드를 재정의하고 지정된 매개 변수를 사용하지 않는 것처럼 사용하지 않는 매개 변수의 이름을 가져 오지 않아도됩니다. 또는 클로저를 구현하고 주어진 매개 변수를 사용하지 마십시오. "
매우 흥미롭고 도전적입니다! 허가해서는 안 스위프트 4 구문 (스위프트 프로그래밍 언어 (스위프트 4)),보고 하지만, :
식별자가 identifier_head가에,identifier → identifier-headidentifier-charactersopt
identifier → `identifier-headidentifier-charactersopt`
identifier → implicit-parameter-name
identifier-list → identifier identifier,identifier-list
identifier-head → Upper- or lowercase letter A through Z
identifier-head → _
identifier-head → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, or U+00B7–U+00BA
identifier-head → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, or U+00F8–U+00FF
identifier-head → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, or U+180F–U+1DBF
identifier-head → U+1E00–U+1FFF
그래서 여기에 정의해야합니다
parameter → external-parameter-nameoptlocal-parameter-nametype-annotation
parameter → external-parameter-nameoptlocal-parameter-nametype-annotation...
external-parameter-name → identifier
local-parameter-name → identifier
이 경우 매개 변수를 참조 할 수 없습니다. _은 외부 이름이 아니라 내부 이름입니다. 당신은 여전히 x
및 y
를 참조 할 수 있지만 (결과
func printMultiple(_ x: Int, _ y: Int) {
// now use x and y
}
:이 매개 변수를 사용하려는 경우
예, 컴파일 할 수 있습니다. 나는 그 코드를 놀이터에 넣고 컴파일했다. 그러나 xcoder의 대답을 살펴보면 이제 왜 그런지 이해할 수 있습니다. –
, 당신은 실제 매개 변수 이름을 단순히 _
의 인수 레이블을 지정하지만 지정합니다 또는 무엇이든간에) 호출 지점에는 레이블이 필요하지 않습니다.
printMultiple(2, 4)
대답은 할 수 없습니다. 이와 같은 매개 변수를 선언하면 컴파일러에서이를 무시하도록 명시하고 있습니다. 그들을 참조해야 할 경우 내부 이름을 부여하십시오 :
func printMultipleOf_v2(_ lhs: Int, _ rhs: Int) {
//how to reference parameters?
print(lhs, rhs)
}
"Do not do that"의 경우입니다.
그래, 내가 할 수있을 것 같아. 그것의 표를 얻는 것, 그래서 나는 당신의 대답에 기반을 둔 실제로 좋은 기술을 강조 할 것이라고 생각했습니다. –
당신이 원한다면 그의 대답을 받아들이십시오. 또는 그것이 왜 좋은 대답인지 명확히하는 것이 합당하다고 생각한다면 그의 대답에 긍정적 인 코멘트를 추가하십시오. 또는 뭔가 중요한 것을 추가하려면 [자신의 답변 게시] (https://stackoverflow.com/help/self-answer)를 클릭하십시오. – Rob
@RichHoffman 내 대답을 받아 들일 수 있습니다. – Xcoder