K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>[mugenkai@love] % diksam if.dkm >>if.dkm: 8:変数名bが重複しています。 > >これですね。 > >int a = 10; >if (a > 5) { > int b = 20; > println("<1>b.." + b); >} else { > int b = 30; > println("<2>b.." + b); >} > >わかりにくい仕様ですが、これで「変数名bが重複しています。」エラーになるのは >現状のDiksamでは仕様です。 > >言語仕様の「ローカル変数」のところで、以下のように書いています。 > >http://kmaebashi.com/programmer/devlang/dls_0_4_01.html >>関数内で宣言された変数はローカル変数(local variable) となる。 >>ローカル変数のスコープは、以下の両方の条件を満たす範囲である >>(現状で、グローバル変数のスコープは、ブロックの影響を受けない)。 > >ここでのbは関数内で宣言された変数ではないので、グローバル変数です。 >グローバル変数のスコープはブロックの影響を受けないので、ifのブロック内であっても >二重に宣言することはできません。 ># 仕様書に書けばバグも仕様に変わる、レベルの話かもしれませんが。 > >testフォルダにif.dkmが入っているのは、エラーになることを確認した残骸では >ないかと思います…… まぎらわしくてすみません。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!