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 의 그것에 비해 아직 구현이 많이 안되어 있어 썩….
댓글 남기기