2009-11-03 5 views
0

파스칼 프로그래밍 언어로 OOP를 배우고 있습니다. 인터넷으로 인터넷을 검색 한 후 OOP -- The GNU Pascal Manaul을 찾았습니다.파스칼로 OOP를하는 방법?

이 함수 선언은 무엇을 의미합니까?

function Baz (b, a, z: Char) = s: Str100; { not virtual }

내가 전에 = xx 본 적이 없다, 그리고 파스칼 구문이없는 것 같다.

답변

1

비표준 확장 프로그램 인 것 같습니다. 해당 기능의 구현은 다음과 같습니다

는 일반적으로 파스칼의
function FooParent.Baz (b, a, z: Char) = s: Str100; 
begin 
    WriteStr (s, 'FooParent.Baz (', b, ', ', a, ', ', z, ')') 
end; 

, 함수의 이름은 함수 반환 변수로 사용되므로 위의 함수는 다음과 같이 기록 될 것입니다 :

function FooParent.Baz (b, a, z: Char): Str100; 
begin 
    WriteStr (Baz, 'FooParent.Baz (', b, ', ', a, ', ', z, ')') 
end; 

= s 구문은 함수의 반환 값이 함수 본문의 변수 s에 저장되어 있음을 나타냅니다. 하지만 왜 객체 인터페이스에서 노출 될 필요가 있는지 확신 할 수 없습니다.

+1

구현에 있기 때문에 인터페이스에 있어야합니다. GPC의 "새로운 기능"중 하나는 "반복적 인 기능 표제 (전달 선언 및 인터페이스에서)가 더 엄격하게 검사됩니다. 결과 변수가 있으면 다른 것도 (OOE 초안에 따라) 엄격해야합니다." http://www.gnu-pascal.de/gpc-es/News.html#News –

+0

모든 오브젝트 파스칼은 비표준 확장입니다. 파스칼 대본 초안은 결코 비준되지 않았습니다. –

-10

질문에 답변 할 수 없지만 Python 또는 Groovy과 같은 언어로 OOP를 배우는 것이 좋습니다. 파스칼은 정말로 당신이 경력을 쌓을 수있는 어떤 것이 아닙니다. 나는 오히려 다른 언어가 어떻게 작동하는지에 대한 아이디어를 제 3의 언어 또는 제 4 언어로 제안하지만 귀하의 첫 번째/주요 언어로는 제시하지 않을 것입니다.

둘 다 작은 실험을 할 수있는 양방향 대화 형 콘솔 (Python 용, 저는 iPython을 제안합니다)을 제공합니다.

참고 : 일부 사람들은 파스칼에 대해 많이 모르는 이유로 나를 공격합니다. 당신이 그 생각을 어디서 들었는지 나는 잘 모르겠습니다. 나는 200K 포인트 이상을 가지고 있고, 30 가지 프로그래밍 언어를 알고있다. (알고있는 == 많은 양의 코드가있다.) 필자는 경력 초기에 파스칼에 코드를 작성했다.

나는 당신이 사랑하는 프로그래밍 언어가 당신이 받아 들일 만하다고 느끼는 인정을 얻지 못할 때 아파한다는 것을 알고 있습니다. 생각할 필요가 없습니다 : 당신은 그 언어를 사용하기로 결정했기 때문에 가장 좋은 언어가되어야합니다. 그렇지 않으면 당신의 결정이 틀렸을 것입니다.

그러나 내가 아는 모든 언어로 작성된 코드를 비교할 때, Pascal/Delphi/Modula/Oberon은 여러 가지 이유로 권장하지 않는 코드 중 하나입니다. 델포이는 볼랜드 때문에 약간의 견인력을 가지지 만 그 이상입니다. Delphi 프로그래머가 작성한 코드를 보았습니다. 그리고 첫 번째 생각은 유지 보수 비용이었습니다.

+10

-1 "귀하의 질문에 답변 할 수 없습니다." 그렇다면 답을 게시하지 마십시오. 댓글 달기. –

+0

댓글이 너무 길거나 복잡합니다. –

+1

모든 텍스트와 3 개의 모든 URL은 100자를 초과 할 수 없습니다. –