Be concise.
Be useful.
All contributions dictatorially edited by webmasters to match personal tastes.
Please do not paste any copyright violating material.
Please try to avoid dependencies to third-party libraries and frameworks.
integer, allocatable, dimension(:,:) :: y
y = x
		
		
	buf := make([]T, m*n)
y = make([][]T, m)
for i := range y {
	y[i] = buf[:n:n]
	buf = buf[n:]
	copy(y[i], x[i])
}
		
		
	func clone2D[M ~[][]T, T any](in M) (out M) {
	if len(in) == 0 {
		return nil
	}
	m, n := len(in), len(in[0])
	buf := make([]T, m*n)
	out = make(M, m)
	for i := range out {
		out[i] = buf[:n:n]
		buf = buf[n:]
		copy(out[i], in[i])
	}
	return out
}
		
		
	y := x;
		
		
	y := copy(x, Low(x), Length(x));
		
		
	y = Marshal.load(Marshal.dump(x))
		
		
	let y = x.clone();