반응형

구글 Go 하자 4

[구글 Go 하자] 37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요.

37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요. 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 원본 슬라이스에서 원하는 영역을 추출하는 부분 슬라이스를 만드는 방법을 알아보아요. 부분 슬라이스를 만들 때는 슬라이스명[시작 인덱스: 끝 인덱스 더하기 일] 표현을 사용하세요. 슬라이스명[시작 인덱스: 끝 인덱스 더하기 일] 주의할 점은 실제 만들어지는 부분 슬라이스 영역은 시작 인덱스에서 끝 인덱스 이전까지만 복사합니다. 다음은 원본 슬라이스에서 원하는 영역을 최종 사용자로부터 입력받아 부분 슬라이스를 만드는 예제 코드예요. //부분 슬라이스 만들기package main import "fmt" func main() { var origin_s []int = []int{10, 23, 3..

[구글 Go 하자] 36. copy 함수를 사용하면 원소 값을 복사할 수 있어요.

36. copy 함수를 사용하면 원소 값을 복사할 수 있어요. 안녕하세요. 언제나 휴일, 언휴예요. 슬라이스에서 대입 연산은 두 개의 변수가 같은 개체를 참조하는 것이었죠. 만약 배열의 대입 연산과 비슷하고 다른 배열의 원소 값을 복사하려면 copy 함수를 사용하세요. 주의할 점은 copy 함수로 복사하면 원소 값이 있던 곳은 복사합니다. 예를 들어 슬라이스 s1은 용량이 10이고 원소 값이 1부터 10으로 초기 설정한 상태라고 가정해요. 그리고 s2는 용량이 5이고 원소 값은 8과 9로 원소 개수가 2라고 가정 하죠. 이 때 copy(s2, s1) 호출하면 s2의 원소 개수 두 개(1과 2)만 복사합니다. 당연히 용량이 부족하다고 늘려주지 않겠죠. 다음은 용량이 10인 s1과 용량이 5인 s2인 슬라이..

[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조

[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 배열과 슬라이스의 차이점 중에 개발자가 실수하기 쉬운 대입 연산을 알아보기로 해요. 선언할 때와 인덱스 연산으로 원소에 접근하는 것은 배열과 슬라이스의 공통점이예요. 그런데 대입 연산에서는 차이가 있어요. 배열끼리 대입 연산을 하면 원소 값을 모두 복사합니다. 하지만 슬라이스는 내부적으로 참조 형식이어서 같은 개체를 참조할 뿐이예요. 예를 들어 배열 arr1에 1, 2, 3 값의 원소를 갖고 있을 때 arr2에 대입하면 arr2 배열도 1, 2, 3 값을 갖는 상태로 변해요. 이 때 arr2[0]=8 연산을 수행하면 arr2는 예상처럼 원소 값은 8, 2, 3으로 변해요. 하지만 arr..

[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요.

[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요. 안녕하세요. 언제나 휴일, 언휴예요. 슬라이스도 생성하면서 값을 초기 설정할 수 있어요. 이 때는 원소 개수를 명시하지 않다는 점 빼고는 배열 초기화와 같아요. var name[] type = []type{값 목록} 이전 예제에서는 5명의 학생 성적을 배열에 갖고 있는 상태에서 출발했었죠. 이번에는 슬라이스를 선언하면서 5명의 학생 성적으로 초기값을 설정한 상태에서 나머지 5명의 성적을 최종 사용자로부터 입력받는 예제 코드예요. // 슬라이스 초기화 후에 성적 입력package main import "fmt" func main() { var scores []int = []int{90, 88, 76, 80, 99} var i int fmt...

반응형