Skip to main content

[Go] Dictionary

기본


type Dictionary map[string]string

위와 같이 선언한다

참고로 변수 map은 아래와 같이 선언하지 않으면 초기화 에러가 난다.

var results = make(map[string]string)
map[키타입] 값타입

위와 같은 방식이다.

func main() {
dictionary := dict.Dictionary{"a": "is a"}
}

main에선 이런식으로 선언한다.

메소드


Read

func (d Dictionary) Search(word string) (string, error) {
value, exists := d[word]
if exists {
return value, nil
}
return "", errNotFound
}

딕셔너리도 struct처럼 메소드를 추가할 수 있다.

딕셔너리는 이렇게 단어가 있으면 value와 exists는 true를 반환하고 단어가 없다면 value는 없고 exists는 false를 반환합니다.

Create

func (d Dictionary) Add(word, def string) error {
_, err := d.Search(word)

switch err {
case errNotFound:
d[word] = def
case nil:
return err
}
return nil
}

딕셔너리에 추가할 때는 그 단어가 있는지 검사가 필요합니다.

Update

func (d Dictionary) Update(word, def string) error {
_, err := d.Search(word)
switch err {
case nil:
d[word] = def
case errNotFound:
return errNotFound
}
return nil
}

업데이트를 하려면 값이 있는지 확인해야한다.

Delete

func (d Dictionary) Delete(word string) error {
_, err := d.Search(word)
switch err {
case errNotFound:
return errNotFound
case nil:
delete(d, word)
}
return nil
}

삭제 역시 값이 있는지 확인해야 한다.