2017-03-05 5 views
0

Swift 메서드에서 설정할 수있는 매개 변수의 최대 값과 그 제한 방법에 관심이 있습니까? Java에서 C#을 어떻게 수행했는지에 대한 정보를 읽었으며 Swift에서 어떻게 수행되는지 알고 싶습니다.Swift의 메소드가 가질 수있는 최대 매개 변수 수는 무엇이며 그 이유는 무엇입니까?

+2

스위프트는 오픈 소스이므로 깊이 관심이 있다면 소스를 연구 할 수 있습니다. – matt

+0

정답은 모르지만 (iOS 용 어쨌든) 메모리가 제한 될 수 있습니다. 기본적으로 Swift 매개 변수는 값과 읽기 전용으로 전달되지만, * inout *을 "참조 기준"으로 사용하지 않고 (여전히 메모리에있는 내용을 복사 함) 사용할 수 있습니다. 즉, 질문에 대한 응답이 급격히 변경됩니다 . 마지막으로 배열, 유형 및 튜플을 어떻게 생각하십니까? 그래서 나는 당신이 더 정확한 대답을 줄 수 있기 전에 당신의 질문을 더 정의 할 필요가 있다고 말할 것입니다. – dfd

+0

@matt 아마 이것을 누군가가 이것을 조사하고 경험을 공유 할 수 있기 때문에 나는 이것을 알고 있습니다. –

답변

4

왜 매개 변수 개수에 임의의 제한이 있다고 생각합니까? Swift 언어 참조는 특별한 제한을 정의하지 않습니다.

parameter-clause → (­)­ | (­parameter-list­)­ 
parameter-list → parameter­ | parameter­,­parameter-list 

그것은 물론 그것을 제한 할 것이다, 메모리가 소진되기 전에 (유한 길이이 제한 일부 컴파일러 구현 세부있을 가능성이 있습니다 : 당신이 grammar 보면, 매개 변수 절은 다음과 같이 재귀 적으로 정의된다 연습). 그러나 나는 하나를 알지 못합니다. 그리고 그것이 왜 예상 될지 불분명합니다. 당신은 확실히 그것에 의지 할 수 없었습니다.

AST에서 보았을 때, 나는 그 수준에서 임의의 한계에 대한 어떠한 증거도 보이지 않습니다. 예상대로 동적으로 할당 된 목록으로 보입니다.