2024-05-29 04:13:18
変数は「型を持った値」を持ちます
・変数宣言の役割について 関数内で変数を宣言するとローカル変数になります。 ローカル変数として宣言しなかった場合、ぜんぶグローバル変数になります。 変数の宣言は「!変数宣言が必要」を用いた時には必須になります。 (変数名)とは変数 (変数名)とは配列 などで初期の型は決めれられるけど、後で自由に変更できます。 ローカル変数と「!変数宣言が必要」を使わない場合、変数宣言はほとんど意味がないと思います。 宣言した場合は初期値が空になる程度でしょうか。 ・変数の型の考え方 変数とはなんぞやという説明によく箱が用いられますよね。 あれはちょっと嘘なんです。 変数はヒトの形をしています。 「型をもった変数」に「値」が入っているのではありません。 「変数」さんは「型を持った値」を所持しているのです。 型が箱の形で、値は箱の中にあります。 変数さんは両手で箱を持っています。 命令は「新しい箱と中身」をセットで作ります。 代入が行われると、変数さんは「持っていた箱」を床に置き、「新しい箱」を両手で持ちます。 このとき、箱ごと床に置くので型は失われます。 変数に「配列の入った箱」を持たせたければ、「配列の入った箱」を生成する命令を使ってそれを代入することです。 【サンプルソース】 名簿とは配列 //配列用の空箱を持った名簿さんが誕生する 名簿は「100,山田太郎,や 102,星野三郎,ほ 103,会田四郎,あ」 //名簿は配列の空箱を床に置き、文字列の入った箱を受け取る 「名簿の変数は」と表示 「名簿」の変数確認と表示 //結果は文字列 名簿の2を表ソート //表ソートは名簿の箱の中身を見て、配列が入った箱を生成する。 //破壊的変更をともなう命令は代入を行う。 名簿は文字列の入った箱を床に置く。配列が入った箱を受け取る。 「■■ソート前後■■」と表示 「名簿の変数は」と表示 「名簿」の変数確認と表示 //結果は配列 ~~~ なでしこは型制限がゆるい言語なので、変数さんはどんな型の箱でも持つことができます。 制限(固定)はできぬ言語仕様です。 javascriptやなでしこ3も同類です。 あと床に置いたままの箱はメモリの管理者が勝手に捨てます。 |