1.18 이후 추가된 golang 의 제네릭을 사용합니다
func Last[E any](s []E, _size int) ([]E, bool) { if len(s) == 0 { var zero []E return zero, false } min := 0 end := len(s) if len(s) > _size { min = end - _size } ret := s[min:end] return ret, true }
간단히 차트를 그리는 api 를 사용하는데 실시간 마지막 100개만 출력 하고 싶었다
변화가 있을 때마다 마지막 100개를 구하는 함수-를 제네릭으로 구현했다
다른 슬라이스 에서도 해당 _size 만큼의 뒷 slice 를 구할 수 있게 되었다
차트를 그리는데에는 아래 코드를 사용했다
Lastchart, ret := Last(timeList, 100) if ret { chart := asciigraph.Plot(Lastchart) fmt.Printf("\x1b[2J") fmt.Printf("%s", chart) }
clear 후 해당 차트를 표시한다 마지막 100개에 대해서
https://github.com/guptarohit/asciigraph
코드를 참고 해보면 된다
하지만 npm 의 그것에 비해 아직 구현이 많이 안되어 있어 썩….
댓글 남기기