Web/GoLang

[golang] stringer 열거형이나 const 일때 자동으로 tostring 할수 있는 제터레이터 auto-generate Stringer tool of Golang

벨포트조던 2023. 8. 22.
반응형

https://cafemocamoca.tistory.com/288

 

[Go] A Tour of Go Exercise : Stringers 풀이

tour.golang.org/methods/18 A Tour of Go tour.golang.org stringer에 대해서 먼저 알아보자면 fmt 패키지에 정의된 인터페이스로 흔하게 사용한다. Stringer는 특정 타입을 string으로 묘사할 수 있다. fmt 패키지를 보

cafemocamoca.tistory.com

 

 

https://last9.io/blog/golang-stringer-tool/

 

Golang's Stringer tool | Last9

Learn about how to use, extend and auto-generate Stringer tool of Golang

last9.io

 

위 두글을 참조하고, goland 에서 사용해봤다.

 

잘 동작하기는 하는데, 직접 install 을 해야하는 라이브러리가 있기 때문에 ... 

도커에 올릴때, install 을 해줘야하지 않을까 우려된다.

 

로컬에서만 썼었고, 개발도커에는 올려보지 않았음. 사용하다가 굳이 필요가 없어져서 ...

암튼 이런 유의사항이 있을 수 있다.

 

이걸 왜 사용했냐면 

 

요렇게 사용이 가능했음

genrate 하면 해당 구조체의 메소드가 자동으로 생성

 

const (
   MOVIE 변수 = iota
   VOD
   GROWTH
   CUSTOM
)

이런식으로 열거형을 쓸때, 

 

package enum

type OrderByEnum int

const (
	None OrderByEnum = 0
	New              = 1
	Old              = -1
)

func (r OrderByEnum) String() string {
	switch r {
	case -1:
		return "old"
	case 1:
		return "new"
	default:
		return "none"
	}
}

func OrderByToEnum(orderBy string) OrderByEnum {
	switch orderBy {
	case "new":
		return New
	case "old":
		return Old
	default:
		return None
	}
}

이렇게 사용하는 분도 있었는데, 

stringer를 쓰면 자동으로 만들어주긴한다. 

 

반응형

댓글