첫 번째 질문 :배열 매개 변수를 D 함수에 전달하는 올바른 방법
D 배열 함수 매개 변수는 항상 참조 또는 값으로 전달됩니까? 또한 언어는 배열에 대한 쓰기 복사를 구현합니까? 예 :
void foo(int[] arr)
{
// is arr a local copy or a ref to an external array?
arr[0] = 42; // How about now?
}
두번째 질문 :
가정하자 나는 읽기 전용 매개 변수로 foo
기능하도록 전달됩니다 큰 배열을 가지고 있고 그것은 때문에, 배열을 복사 가능한 한 피해야한다 매우 큰 객체라고 가정합니다. 에서 어떤 다음 (또는 그들 중 누구도) 함수 foo
에 가장 선언하지 않을 것이다 :
void foo(const int[] bigArray)
void foo(in int[] bigArray)
void foo(const ref int[] bigArray)
은 아무런 의미가없는 no-op이며, const를 사용하는 istead는 const'ness보다 강력하므로 적절하지 않은 변경이 가능합니다. – Quonux