タグ

ブックマーク / zenn.dev/frozenlib (1)

  • lazy_static はもう古い!? once_cell を使おう

    この記事を 3 行でまとめると Rust のグローバル変数には多くの制限があった 制限を撤廃し、容易にグローバル変数を使うためのクレートが lazy_static lazy_static の代替となる once_cell が登場 Rust のグローバル変数には多くの制限があった Rust にはグローバル変数がありますが、 定数でしか初期化できない 変更可能にすると unsafe を使用する必要がある 変更不可にするとスレッドセーフな型しか使用できない という制限があり、非常に使いづらい物となっていました。 例えば、一度だけ巨大なテキストを読み込んでグロバール変数に格納したいとします。 しかし、次のように書くと unsafe 無しではグローバル変数を変更できないため、コンパイルエラーとなってしまいます。 static mut LARGE_TEXT : String = String::new

    lazy_static はもう古い!? once_cell を使おう
  • 1