34 lines
961 B
D
34 lines
961 B
D
import std.stdio;
|
||
|
||
int[3] fun(int[3] x, int[3] y)
|
||
{
|
||
// x и y – копии переданных аргументов
|
||
x[0] = y[0] = 100;
|
||
return x;
|
||
}
|
||
|
||
double[3] fun2(double[] x)
|
||
{
|
||
double[3] result;
|
||
result[] = 2 * x[]; // Операция над массивом в целом
|
||
return result;
|
||
}
|
||
|
||
void main()
|
||
{
|
||
int[3] a = [1, 2, 3];
|
||
int[3] b = a;
|
||
a[1] = 42;
|
||
assert(b[1] == 2); // b – независимая копия a
|
||
|
||
auto c = fun(a, b); // c имеет тип int[3]
|
||
|
||
assert(c == [100, 42, 3]);
|
||
writeln(c);
|
||
assert(b == [1, 2, 3]); // Вызов fun никак на отразился на b
|
||
writeln(b);
|
||
|
||
double[3] point = [0, 0, 0];
|
||
double[] test = point; // Все в порядке
|
||
auto r = fun2(point); // Все в порядке, теперь r имеет тип double[3]
|
||
} |