2015-02-04 7 views
0

일부 Ada 코드를 디버깅 중이며 연산자가 포함 된 여러 줄이있는 루프가 있습니다 : =>. 나는 전에 이것을 보지 못했고, 빠른 구글은 실제로 그것이하는 일을 찾아내는 데 많은 도움이되지 못했습니다 ... 누구든지 나를 도울 수 있습니까?Ada에서 => do 무엇을합니까

예를 들면, 루프에서 같은 라인있다 :

time => data.time; 
distance => data.distance; 

이것은 왼쪽에 것과 우측의 변수들의 값을 할당되도록 온 사람 left는 이제 오른쪽의 변수와 같거나, 왼쪽의 변수의 메모리 주소를 할당함으로써 오른쪽의 변수 위치를 가리킬 수 있습니까?

도움을 주시면 감사하겠습니다.

편집 코드 (1700 @ 2015년 4월 2일)

그래서, => 될 것이라고 사용되는 곳의 풀러 예를 둘러싼 보여줄 수 :

if data.IASType /= Types.TOA and data.IASType /= Types.RNG then 
    -- Calculate positionOfTarget using the laterRelativeTime 
    ... 
    SteeringUtilities.calculateApproachData 
    (... 
    time => data.time, 
    distance => data.distance, 
end if; 

Apologies- 그냥 내가 실현을 누락은 , 대신에 라인의 끝에 ;을 넣음으로써 두 라인을 더 일찍 인용했다.

+0

이것은 루프와는 아무런 관련이 없습니다. 대부분 루프 내에서 [aggregate] (http://www.adaic.org/resources/add_content/standards/12rm/html/RM-4-3-1.html) 할당과 관련이 있습니다. 그러나 우리가 더 이상의 맥락 없이는 추측하기가 불가능합니다. 세미콜론은 구문 오류와 비슷합니다. – egilhh

+0

다른 가능성은 call-by-value 의미론을 사용하는 서브 프로그램 호출입니다. 어쨌든 여기에는 더 많은 문맥이 필요합니다. –

+0

아, 네. [Named association] (http://www.adaic.org/resources/add_content/standards/12rm/html/RM-6-4.html#I3454) – egilhh

답변

4

=>은 "연산자"가 아닙니다. 이것은 가장 일반적인 목적이 단순히 순서대로 목록을 나열하는 대신 목록의 각 항목이 의미하는 것을 보여줌으로써 서브 프로그램 호출에 대한 매개 변수와 같은 사물 목록을 지정할 수 있도록하는 구문 요소입니다. 예를 들어, Put_Line 절차 중 하나는 다음과 같이 정의된다 : 구문이 같은 많은 다른 것들에 사용되는

Put_Line(My_File, "Hello, world"); 
Put_Line(File => My_File, Item => "Hello, world"); 
Put_Line(Item => "Hello, world", File => My_File); 

: 당신이 그것을 호출 할 때

procedure Put_Line(File : in File_Type; Item : in String); 

는 다음 통화가 모두 동일 일반 인스턴스화의 매개 변수, pragma의 매개 변수 등이 있습니다. 또한 레코드 집계 및 배열 집계에도 사용됩니다. 배열 집계의 경우 왼쪽에 색인, 여러 색인, 색인 범위 또는 others을 가질 수 있습니다. =>입니다.