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 サイトの他の関連記事を参照してください。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

この記事では、コードのランタイム操作に使用されるGoの反射パッケージについて説明します。シリアル化、一般的なプログラミングなどに有益です。実行やメモリの使用量の増加、賢明な使用と最高のアドバイスなどのパフォーマンスコストについて警告します

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック



