はじめに
こんにちは。技術書を眺めていると先に概念の説明がありますよね。
なんとなく実際の動作(詳細)を先にもってきてみました。という思いつきです。
このネタには Rust が丁度良さそうなので題材にしてみようと思います。
題して「出力だけから言えそうなことを並べてみる」です。内容は「参照先のアドレスを確認してみる」とします。
参照先のアドレスを確認してみる
複数回実行してみる
- アドレスは16進数(
0x...
)で出力される。
- 実行ごとにアドレスが変化している。
- アドレスの前半(
7ff
)と末尾(例: c
)は常に同じ。
- 脱線: 変数(
x
)の型を変更すると末尾が変化する。
ブロック({}
)で囲ってみる
- アドレスの前半(
7ff
)と末尾(例: 4
,0
)は常に同じ。
- 脱線: 変数(
x
)の型を変更すると末尾の組み合わせが変化する。
シャドーイングしてみる
- 変数を宣言(
let
)することで新たな領域(アドレス)が確保される。
- アドレスの前半(
7ff
)と末尾(例: c
)は常に同じ。
- 脱線: 変数(
x
)の型を変更すると末尾が変化する。
脱線: ミュータブルな変数に再代入してもアドレスは変化しない
変数を宣言(let
)していないので同じアドレスになります。
脱線: シャドーイング後に1番目の変数(アドレス)を参照する
不変参照によって実現できそうです。
- 参考: 4.2. 参照と借用
-
複数の不変参照をすることは可能です。 データを読み込んでいるだけの人に、他人がデータを読み込むことに対して影響を与える能力はないからです。
なんだか(信頼性を隠れ蓑に)難解なコードを生み出せそうな気がしてきます。
関数を呼んでみる
・・・おっと、
きりがないですね。いくらでも「脱線」できそうなので、ここまでにしておきます。
本記事が目的としていた試みはとりあえず満たせたかと思います。それでは。
0 items under this folder.