Go에서 배열을 매개변수로 받을때의 시그니처와 슬라이스로 변환으로 받는 시그니처는 서로 다르다. 슬라이스는 배열의 원본을 참조하고 있어, 슬라이스 시그니처를 사용할 경우 배열은 자동적으로 슬라이스로 변환된다.
func arrayParmas([10]int) /* 매개변수로 배열 타입으로 받아, 배열을 복사해서 새로운 메모리에 적재 */
위와 같은 방법으로 매개변수를 받을 경우 배열의 원본에 접근하지 않고, 새로 복사하여 메모리에 쌓는다. 해서 해당 함수내에서 작업한 것을 return 해줘야 한다.
func slicePamrs([]int) /*매개변수로 슬라이스로 선언할 경우, 참조값을 받기 떄문에 원본 수정이 된다 */
슬라이스의 경우 배열을 매개변수로 받으면 자동적으로 슬라이스타입으로 변환을 일으킨다. 실제적 동작으로는 배여르이 슬라이스 뷰가 전달되는 것이다. 이렇게 할 경ㄹ우 return 이 필요없고, 위의 배열 원본을 조작하게 된다.