日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 検索

2024-05-29 04:13:18

変数は「型を持った値」を持ちます

TKI さん

・変数宣言の役割について
関数内で変数を宣言するとローカル変数になります。
ローカル変数として宣言しなかった場合、ぜんぶグローバル変数になります。

変数の宣言は「!変数宣言が必要」を用いた時には必須になります。

(変数名)とは変数
(変数名)とは配列
などで初期の型は決めれられるけど、後で自由に変更できます。

ローカル変数と「!変数宣言が必要」を使わない場合、変数宣言はほとんど意味がないと思います。

宣言した場合は初期値が空になる程度でしょうか。


・変数の型の考え方

変数とはなんぞやという説明によく箱が用いられますよね。
あれはちょっと嘘なんです。

変数はヒトの形をしています。

「型をもった変数」に「値」が入っているのではありません。
「変数」さんは「型を持った値」を所持しているのです。
型が箱の形で、値は箱の中にあります。

変数さんは両手で箱を持っています。
命令は「新しい箱と中身」をセットで作ります。

代入が行われると、変数さんは「持っていた箱」を床に置き、「新しい箱」を両手で持ちます。
このとき、箱ごと床に置くので型は失われます。


変数に「配列の入った箱」を持たせたければ、「配列の入った箱」を生成する命令を使ってそれを代入することです。


【サンプルソース】
名簿とは配列  //配列用の空箱を持った名簿さんが誕生する
名簿は「100,山田太郎,や
102,星野三郎,ほ
103,会田四郎,あ」 //名簿は配列の空箱を床に置き、文字列の入った箱を受け取る

「名簿の変数は」と表示
「名簿」の変数確認と表示  //結果は文字列

名簿の2を表ソート //表ソートは名簿の箱の中身を見て、配列が入った箱を生成する。
//破壊的変更をともなう命令は代入を行う。 名簿は文字列の入った箱を床に置く。配列が入った箱を受け取る。

「■■ソート前後■■」と表示

「名簿の変数は」と表示
「名簿」の変数確認と表示  //結果は配列

~~~

なでしこは型制限がゆるい言語なので、変数さんはどんな型の箱でも持つことができます。
制限(固定)はできぬ言語仕様です。
javascriptやなでしこ3も同類です。

あと床に置いたままの箱はメモリの管理者が勝手に捨てます。


(編集パスワード送信)

子記事

親記事 (No.1887)
返信した記事(元) (No.1887)

この内容(No.1912)に返信

この内容(No.1912)をダウンロード

この内容(No.1912)のテキスト表示





www.eznavi.net