Conky 패널에 Python 스크립트 출력 표시에서 저는 Conky 패널에서 Python 스크립트를 실행하여 비트코인 환율을 USD와 BRL로 표시할 것을 제안했습니다. 하지만 이런 기본적인 작업을 하기에는 예상보다 메모리 소모가 많아 Go로 스크립트를 다시 작성했습니다. 이제 컴파일된 바이너리가 작업을 처리합니다. 이 접근 방식은 Go 초보자에게 이상적이며 금전적 가치에 대한 API 처리 및 텍스트 형식을 배울 수 있는 기회를 제공합니다. 분석 내용은 다음과 같습니다.
전체 코드는 이 글의 마지막 부분에 있습니다.
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
const ( apiURL = "https://economia.awesomeapi.com.br/json/last/BTC-USD,BTC-BRL" )
type CurrencyData struct { High string `json:"high"` Low string `json:"low"` } type APIResponse struct { BTCUSD CurrencyData `json:"BTCUSD"` BTCBRL CurrencyData `json:"BTCBRL"` }
JSON 태그(json:"high")는 구조체 필드를 JSON 키에 매핑합니다.
func formatCurrency(value string, prefix string) string { floatValue, err := strconv.ParseFloat(value, 64) if err != nil { return "N/A" } formattedValue := fmt.Sprintf("%s%s", prefix, humanize.FormatFloat("#,###.##", floatValue)) return formattedValue }
resp, err := http.Get(apiURL) if err != nil { writeError(err) return } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { writeError(err) return }
var data APIResponse if err := json.Unmarshal(body, &data); err != nil { writeError(err) return }
usdAlta := formatCurrency(data.BTCUSD.High, "$$") usdBaixa := formatCurrency(data.BTCUSD.Low, "$$") brlAlta := formatCurrency(data.BTCBRL.High, "R$$") brlBaixa := formatCurrency(data.BTCBRL.Low, "R$$")
표시할 API 제공 값의 형식을 지정합니다.
formattedData := fmt.Sprintf( "\n\n${color white}BTC - USD\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n\n"+ "${color white}BTC - BRL\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n", usdAlta, usdBaixa, brlAlta, brlBaixa, ) fmt.Println(formattedData)
형식이 지정된 값으로 최종 출력 문자열을 생성합니다.
func writeError(err error) { errMsg := fmt.Sprintf("Error: %v", err) fmt.Println(errMsg) }
터미널에 오류를 기록합니다.
실행: btc_data.go && ./btc_data.go 빌드로 이동
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
이 기사가 도움이 되었거나 즐거우셨다면 기여해 보세요.
위 내용은 Go로 비트코인 환율 표시하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!