サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
igaguri.hatenablog.com
JSONはREST API呼び出し、データ保存、多言語との連携などに数多く使用されている。 一方で、JSONは言語でサポートされる表現が整数と浮動小数点数・文字列・配列・オブジェクト・そしてnull程度しかなく、それ以上に複雑な表現はこれらの基本機能を組み合わせて表現することになる。 機能の組み合わせ方には複数の方法があり、特に複数の型の構造体やクラスが混在する時の表現形式は複数ある。 Rustでは、表現したいデータ型が既知であれば、複数の型のうちどれかであることを表現するために列挙型が使える。 そして、Rustのシリアライザ・デシリアライザのライブラリであるserdeを用いて、列挙型とJSONの相互変換をすることができる。 列挙体の4種の表現 serdeで取り扱える列挙体の表現形式は4種類ある*1。 それぞれexternally tagged、internally tagged、adja
所有権(ownership)と借用(borrowing)とライフタイム(lifetime)はRust特有の言語仕様として有名である。 Rustではガベージコレクション(GC)を使用せずにメモリ安全性を確保するために所有権と借用とライフタイムの仕様を採用している。 この機構によって、Rustではプログラマが変数の値が有効である範囲を意識する必要がある代わりに、GCに関する実行時のオーバーヘッドがなくともメモリ安全でありスレッドセーフであるプログラムを記述することができる。 一方で、所有権は「『変数が値の所有権を持っている』というのは結局何のことなのかわからない」という混乱を生む要因でもある。 単純に考えると、変数に値が入っているのだから、変数が値を持っているのは当然のことのように思える。 そうすると、「値の所有権を持つ」とは一体何のことを言っているのかがはっきりとしなくなってしまう。 この混
このページを最初にブックマークしてみませんか?
『igaguri.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く