이번 편의 목표: 개수가 정해지지 않은 연체 일수를 슬라이스에 담고 합계를 구합니다.
배열의 길이는 타입에 고정됩니다. 슬라이스는 그 배열을 가리키는 길이 있는 목록입니다. append는 뒤에 값을 붙인 슬라이스를 돌려줍니다. 반환값을 다시 넣어야 늘어난 목록을 쓸 수 있습니다.
package main
import "fmt"
func main() {
days := []int{1, 0, 3}
days = append(days, 2)
total := 0
for _, day := range days {
if day > 0 {
total += day * 100
}
}
fmt.Println(total)
fmt.Println(len(days))
}1, 0, 3에 2가 추가됩니다. 0은 연체가 아니므로 건너뜁니다. 100, 300, 200을 더하면 첫째 줄은 600입니다. 둘째 줄은 길이 4입니다. range는 인덱스와 값을 차례로 줍니다. 인덱스를 쓰지 않으면 _ 로 버립니다.
len은 지금 들어 있는 개수입니다. append가 돌려준 슬라이스를 저장하지 않으면 추가한 2를 이후의 반복에서 보지 못합니다.
직접 해 보기
append(days, 2) 대신 append(days, 5)를 쓰고 합계가 900인지 확인하세요.
해설
1, 3, 5만 요금이 있습니다. 100과 300과 500의 합은 900입니다. 길이는 그대로 4입니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.