요약 - 사용자 정의 데이터 구조
Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 101번째.
챌린지
쉬움Go에서 구조체(structs)에 대해 배운 내용을 복습하기 위해 간단한 사용자 정의 데이터 구조를 만들어 보겠습니다.
이 챌린지에서는 다음과 같은 기능을 수행하는 기본적인 Counter 데이터 구조를 만들 것입니다:
- 카운트 값 추적
- 카운트 증가
- 카운트 감소
- 카운트를 0으로 초기화
Counter 구조체에 누락된 메서드들을 구현하여 코드를 완성하세요.
직접 해보기
package main
import (
"fmt"
)
// Counter는 간단한 카운터 데이터 구조입니다
type Counter struct {
value int
name string
}
// NewCounter는 주어진 이름으로 새로운 카운터를 생성합니다
func NewCounter(name string) Counter {
return Counter{
value: 0,
name: name,
}
}
// Increment는 카운터를 1 증가시킵니다
func (c *Counter) Increment() {
// 카운터의 값을 증가시키는 코드를 추가하세요
}
// Decrement는 카운터를 1 감소시킵니다 (단, 0 미만으로는 내려가지 않습니다)
func (c *Counter) Decrement() {
// 카운터의 값을 감소시키는 코드를 추가하세요
// 값이 0 미만으로 내려가지 않도록 확인하세요
}
// Reset은 카운터를 0으로 초기화합니다
func (c *Counter) Reset() {
// 카운터를 0으로 초기화하는 코드를 추가하세요
}
// Value는 현재 카운트 값을 반환합니다
func (c Counter) Value() int {
// 현재 값을 반환하는 코드를 추가하세요
return 0 // 이 부분을 교체하세요
}
// String은 카운터의 문자열 표현을 반환합니다
func (c Counter) String() string {
return fmt.Sprintf("%s: %d", c.name, c.value)
}
func main() {
// "Visitors"라는 이름의 새로운 카운터를 생성합니다
visitors := NewCounter("Visitors")
// 카운터를 몇 번 증가시킵니다
visitors.Increment()
visitors.Increment()
visitors.Increment()
// 현재 카운트 값을 출력합니다
fmt.Println(visitors)
fmt.Println("Current value:", visitors.Value())
// 카운터를 감소시킵니다
visitors.Decrement()
fmt.Println(visitors)
// 카운터를 초기화합니다
visitors.Reset()
fmt.Println(visitors)
// 카운터가 0 미만으로 내려가지 않는지 테스트합니다
visitors.Decrement()
fmt.Println(visitors)
}기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입