だから私はすぐにクイズをしています。
私はちょうどいくつかのコードを貼り付けるつもりです。私はあなたがこれが返すと考えるものをタイプアップすることなく精神的に評価してほしいです。
そこで関数を定義し、最後に関数を呼び出します。
だから何が帰ってくるのか？
したがって、ここの答えは真です。
だから、それがどのように働くかを歩みましょう。
私たちが麻痺していると宣言している最初のことは8です。
それから私たちは数学をする関数を持っていますが、まだ実行されていません。
したがって、実行される次のことは、節約プラス1になります。
だから今は9番です。
これは同じスコープに入っているので表示されているのと同じです。それから私たちは呼び出して数学を行います。
だから、数学の代わりに私たちは麻痺プラス1を書いています。
SO NUMBは9歳でした。
これは同じ番号を指しています。
だから今は10です。
したがって、ここでは、麻痺が5で割り切れるかどうかをチェックします。
だから、10は5で割り切れる。
だから我々は真実に戻ります。
だから私が言及したように、スコープは悪名高く説明するのが難しいです。
これは私たちがここの表面だけを傷つけたものですが、新しい関数を定義するたびに新しいスコープを定義し、関数の外で定義された変数にアクセスすることができます関数の外部ではアクセスできないものを定義しています。
だから私はハイライトの中にハイエンドと呼ばれる2つの機能を持っている場合、私はハイライトしたいもう一つの簡単な例があります私は変数名がRustiに等しいと宣言するつもりですし、私は別の関数を呼び出すつもりですが、そこにRustieを定義するつもりはありませんが、私が高く走って実行するとConchobarのブログ名に行きます。
私は変数名が高値ではなく、Rustyであると定義したので、もちろん錆びています。
そして私はそれを印刷しました。
しかし、私がこれを行うと、私は未定義になります。名前は関数によってこのスコープ内でアクセス可能ではないので、起こっています。
これは、すべての関数が独自のスコープを持ち、関数間で共有されていないことを示しています。