ホームページ > バックエンド開発 > Golang > Go で 1000 の累乗を定数として効率的に定義するにはどうすればよいでしょうか?

Go で 1000 の累乗を定数として効率的に定義するにはどうすればよいでしょうか?

Barbara Streisand
リリース: 2024-12-03 20:35:15
オリジナル
297 人が閲覧しました

How Can We Efficiently Define Powers of 1000 as Constants in Go?

10 のべき乗をコンパクトな定数として書く

Go プログラミングのコンテキストでは、iota 定数を使用して 2 のべき乗をエレガントに定義できますジェネレーターでは、1000 の累乗 (KB、MB など) の定数を宣言するという課題が発生します。

ただし、言語の他の機能を利用して、この問題に取り組む創造的な方法があります。 1 つのアプローチでは、指数を持つ浮動小数点リテラルを利用します。

const (
    KB, MB, GB, TB, PB, EB, ZB, YB = 1e3, 1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24
)
ログイン後にコピー

このメソッドは、すべての定数を 1 行で簡潔に表し、長さは 67 文字になります (スペースを除く)。

もう 1 つの方法このアプローチは整数リテラルを採用し、確立された KB 定数をmultiplier:

const (
    KB, MB, GB, TB, PB, EB, ZB, YB = 1000, KB * KB, MB * KB, GB * KB, TB * GB, PB * KB, EB * KB, ZB * KB
)
ログイン後にコピー

このアプローチでは、型なしの整定数が生成され、長さは 77 文字 (スペースを除く) になります。

さらに、乗算係数を表す中間定数 x を導入することにより、さらに 3 文字を保存できます:

const (
    x, KB, MB, GB, TB, PB, EB, ZB, YB = 1000, x, x * x, MB * x, GB * x, TB * GB, PB * x, EB * x, ZB * x
)
ログイン後にコピー

このソリューションでは長さが 74 になります。

最後に、ルーン リテラルを利用して 1000 定数を表すことができ、これにより別の文字が節約されます。

const (
    x, KB, MB, GB, TB, PB, EB, ZB, YB = 'Ϩ', x, x * x, MB * x, GB * x, TB * GB, PB * x, EB * x, ZB * x
)
ログイン後にコピー

このアプローチでは、ルーン定数が提供され、長さは 73 になります。

これらのソリューションは、1000 の定数乗をコンパクトに定義するためのさまざまな創造的なテクニックを示しています。 Go にはべき乗演算子がありません。

以上がGo で 1000 の累乗を定数として効率的に定義するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート