2017-01-09 1 views
1

지난 여름 그루비를 배웠고 값으로 매개 변수 이름을 지정하고 해당 값을 초기화 할 수있는 생성자 구문을 발견했습니다. 예를 들어 : 연말에parmname의 출처는 무엇입니까? 매개 변수를 전달하는 value 구문은 무엇입니까?

Team team = new Team(name: "Bengals") 

, 내가 IntelliJ를 업그레이드하고이 구문은 다른 매개 변수 목록과 오버로드 된 함수 내 자바 기능에 표시하기 시작했다. (이 아주 잘 구현되지 않습니다. 내가 값을 변경하려고하면 그것은. 내가 그것을 알아 냈하지만, 잘못 구현 한 혼란.) 내가 스위프트 3을 배우고 있기 때문에, 흥미

team.chant = (msg: "Who dey?"); 

동일한 구문을 사용합니다.

스위프트 3가 그루비의 영향을받지는 않을 것으로 보이므로 궁금합니다. parmname : value 구문을 지원하기 위해 이들 언어에 어떤 언어가 사용되고 있습니까?

스위프트는 스몰 토크에 대해 내가 거의 알지 못하는 것 같습니다. 스몰 토크가이 매개 변수 구문을 지원합니까?

+0

https://en.wikipedia.org/wiki/Named_parameter에는 Ada, C# 4.0 이상, Ceylon, CFML (ColdFusion Markup Language), Common Lisp, Fortran, IDL, Kotlin, Mathematica, Objective-C, PL/SQL, Python, R, Ruby, 스칼라, 스몰 토크, 스위프트 및 비주얼 베이직. – eMBee

+0

여기 예제 : http://rosettacode.org/wiki/Call_a_function 및 여기 : http://rosettacode.org/wiki/Named_parameters – eMBee

+0

흥미 롭습니다 ... 새로 C#에 새로 추가되었습니다. Objective-C를 신속하게 제공하고 C#을 모두 볼 수 있습니다. 어쩌면 그것이 압력 일 것입니다. – Thom

답변

2

스위프트도 그루비도 모르므로 스몰 토크 부분 만 응답 할 수 있습니다.

스몰 토크는 해당 구문을 지원하지 않지만 그와 매우 유사한 키워드 메시지를 가지고 있습니다. 예컨대

,

team := Team new name: 'Bengals'. 
team chant msg: 'who dey?' 

스몰 토크에 유효하다.

매개 변수의 이름이 명령에있는 것은 아니지만 명령 자체는 #name :이며 일부 인스턴스 변수의 이름과 일치하지만 값을 설정하는 방법입니다 ... 그래서 말했듯이, 그것은 같은 것을 읽지 만 그 의미는 매우 다릅니다.