Menu
Coddy logo textTech

요약 - 사용자 정의 데이터 구조

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 101번째.

challenge icon

챌린지

쉬움

Go에서 구조체(structs)에 대해 배운 내용을 복습하기 위해 간단한 사용자 정의 데이터 구조를 만들어 보겠습니다.

이 챌린지에서는 다음과 같은 기능을 수행하는 기본적인 Counter 데이터 구조를 만들 것입니다:

  1. 카운트 값 추적
  2. 카운트 증가
  3. 카운트 감소
  4. 카운트를 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)
}

기초의 모든 레슨