선택적 매개 변수로 동적 배열을 함수 또는 프로 시저에 전달할 수 있습니까? 그렇다면 어떻게?델파이 7의 선택적 매개 변수로 동적 배열
procedure testp (str : string; var arr : StringArray = nil);
begin
str := 'Ciao Alessio !';
SetLength(arr, 2);
arr[0] := 'Ale';
arr[1] := 'Ale';
end;
을하지만 제공합니다 :
나는이 방법으로 시도 default parameter 'arr' must be by-value or const
.
저는 델파이 7을 사용하고 있습니다 만, 델파이 7에서는 가능하지 않다면 델파이 나 프리 파스칼의 최신 버전이 있습니까?
이와 같이 var 매개 변수를 사용하는 것은 바람직하지 않습니다. 코드에서 매개 변수가 수정된다는 것은 명확하지 않습니다. 값을 반환하는 함수를 사용하는 것이 좋습니다. – alcalde
왜 TStrings 매개 변수가없고 nil을 전달해야합니까? 문자열 배열 SUCK, 빠르고 친숙한 API를 원할 경우 매개 변수에 TStringList (기본 클래스 TStrings) 만 사용하면됩니다. 왜 단지 클래스를 사용할 수있을 때, 백만 개의 find-a-string-in-array 루틴을 작성합니까? –
배열 (내가 openArrays 뜻) 때문에 당신은 단순히 배열 생성자를 사용할 수 있습니다 프로 시저 호출에서 매개 변수를 전달하지만, TStrings 당신은 var 선언, 델파이 모든 것을 파괴해야합니다. – Mic