Conky パネルでの Python スクリプト出力の表示では、Conky パネルで Python スクリプトを実行して、ビットコインの為替レートを USD と BRL で表示することを提案しました。ただし、このような基本的なタスクでは予想以上にメモリを消費するため、スクリプトを Go で書き直しました。現在は、コンパイルされたバイナリがタスクを処理します。このアプローチは Go 初心者にとって理想的であり、API 処理と通貨値のテキスト形式を学ぶ機会を提供します。内訳は次のとおりです:
完全なコードはこの記事の最後にあります。
1 - パッケージとインポート
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
- package main: これをプログラムのエントリ ポイントとしてマークします。
-
インポートされたライブラリ:
- エンコーディング/json: API からの JSON 応答を解析します。
- fmt: テキストの書式設定と印刷用。
- io: レスポンスボディの読み取り用。
- net/http: HTTP リクエストを行うため。
- strconv: 文字列を数値に変換します。
- humanize: 数字に千の区切り文字を追加します。 go get github.com/dustin/go-humanize. 経由でインストールします。
2 - グローバル定数
const ( apiURL = "https://economia.awesomeapi.com.br/json/last/BTC-USD,BTC-BRL" )
- apiURL: ビットコイン為替レートを取得する API エンドポイント。
3 - JSON 解析の構造
type CurrencyData struct { High string `json:"high"` Low string `json:"low"` } type APIResponse struct { BTCUSD CurrencyData `json:"BTCUSD"` BTCBRL CurrencyData `json:"BTCBRL"` }
- CurrencyData: 通貨の最高値と最低値を保持します。
- APIResponse: BTCUSD キーと BTCBRL キーを含む完全な API レスポンスを表します。
JSON タグ (json:"high") は、構造体フィールドを JSON キーにマップします。
4 - 金額をフォーマットする機能
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 }
- strconv.ParseFloat を使用して値 (文字列) を float に変換します。
- 接頭辞 ($ または R$ など) を追加して、桁区切り記号と小数点以下 2 桁を使用して数値をフォーマットします。
5 - 主な機能
5.1 APIリクエスト
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 }
- http.Get(apiURL): GET リクエストを API に送信します。
- defer resp.Body.Close(): 処理後に応答本文が確実に閉じられるようにします。
- io.ReadAll: 応答本文を読み取ります。
5.2 JSON の解析
var data APIResponse if err := json.Unmarshal(body, &data); err != nil { writeError(err) return }
- json.Unmarshal: JSON 応答を APIResponse 構造体に解析します。
5.3 データのフォーマット
usdAlta := formatCurrency(data.BTCUSD.High, "$$") usdBaixa := formatCurrency(data.BTCUSD.Low, "$$") brlAlta := formatCurrency(data.BTCBRL.High, "R$$") brlBaixa := formatCurrency(data.BTCBRL.Low, "R$$")
API が提供する値を表示用にフォーマットします。
5.4 結果の構築
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)
フォーマットされた値を使用して最終的な出力文字列を作成します。
6 - エラーログ機能
func writeError(err error) { errMsg := fmt.Sprintf("Error: %v", err) fmt.Println(errMsg) }
ターミナルにエラーを記録します。
? btc_data.go
実行: go build btc_data.go && ./btc_data.go
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
この記事が役に立った、または楽しんでいただけた場合は、貢献することを検討してください:
以上がGo でビットコインの為替レートを表示するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

開発者は、次のベストプラクティスに従う必要があります。1。ゴルチンを慎重に管理して、リソースの漏れを防ぎます。 2。同期にチャネルを使用しますが、過剰使用を避けます。 3。同時プログラムのエラーを明示的に処理します。 4. GomaxProcsを理解して、パフォーマンスを最適化します。これらのプラクティスは、リソースの効果的な管理、適切な同期の実装、適切なエラー処理、パフォーマンスの最適化を確保し、それによりソフトウェアの効率と保守性を向上させるため、効率的で堅牢なソフトウェア開発には重要です。

goexcelsinproductionduetoitsperformanceandsimplicity、butrequirescarefulmanagement of sscalability、errorhandling、andresources.1)dockerusesgofores goforesesgorusesgolusesgotainermanagement.2)uberscalesmicroserviceswithgo、facingchallengesinservicememameme

標準のエラーインターフェイスが限られた情報を提供し、カスタムタイプがコンテキストと構造化された情報を追加できるため、エラータイプをカスタマイズする必要があります。 1)カスタムエラータイプには、エラーコード、場所、コンテキストデータなどを含めることができます。2)デバッグ効率とユーザーエクスペリエンスを改善する3)ただし、その複雑さとメンテナンスコストに注意する必要があります。

goisidealforbuildingscalablessystemsduetoitssimplicity、効率性、およびビルド・インコンカレンシsupport.1)

intionSingOrunautomaticallyは()andareuseforstingupenments andinitializingvariables.usemforsimpletasks、回避効果を回避し、測定可能性を測定することを検討します。

goinitializeSpackages intheordertheyareimport extionsitions withinitionsiteintheirdefinition ordord、およびfilenamesdetermineTheOordCrossMultiplefiles.thisprocesccanbeandeanded by -dependenciessedieSiesは、このマイレアドカンフレシニティン化の対象となります


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

ホットトピック









