ローカルスコープに対応
ローカルスコープが扱えるようになりifの中で変数が定義できるようになった
スコープ内で外側の変数と同名の変数を定義した場合、別の変数として扱うことにした
オーソドックスなCと同じ仕様にした
なんかjavascriptあたりがきしょい動きをしていたような気がする
クロージャ変数の取り扱いがちょっと変わった
今までは関数スコープにクロージャ変数とマークされた変数があればframeを作りつつぶちこんでいた
今度からはローカルにクロージャ変数があるやもしれへん
クロージャ変数が見つかったタイミングで関数へframeを作るようにし、ローカルスコープ側から関数のframeを作るようにした
1文字変数
プログラムで1文字変数をよく使う
よく使う1文字変数の用途はだいたいこんな感じ
a…意味のない変数、だいたいaとbをセットで使う、単品で使う場合はxを使う
b…同上
c…文字型(char)に使う
d…数値に使う、主に10進数を入れる、たまに日付を入れる
e…自然対数の底を入れるが滅多に使わない、評価値(eval)を入れることもある
f…関数を入れる、どうでもいいサンプルプログラムの関数名に使ったりもする
g…グローバル変数を入れる
h…高さの数値を入れる
i…ループカウンタ
j…ループカウンタその2
k…ループカウンタその3
l…使わない、数値の1と似てるから
m…数式っぽい式に使う
n…数式っぽい式に使う
o…使わない、数値の0と似てるから
p…ポインタを入れる
q…公式でqを使ってた時以外滅多に使わない
r…角度とか入れる
s…文字列(string)を入れる
t…変数を入れ替えるための一時変数に使う、たまに時間を入れる
u…使わない
v…valueという変数を受けるのに使う
w…幅の数値を入れる
x…意味のない変数やごく短い関数でよく使う、座標を扱う場所では使えない
y…y座標を入れる
z…z座標を入れる
nullに対応
nullに対応した
え、いまさら?
はい
nullはNull型のインスタンスとした
せやから[Foo | Bar]?
は[Foo | Bar | Null]
のシンタックスシュガーになる
CILでは値型にnull入れれへんから、Object型にしてBox/UnBoxする事にした
.NET Frameworkの参照型はnullが無制限で入るから、全部Foo?
にするんかい、って所は面倒なのであまりやりたくない
ただ、本当にnullを入れたい時に型が合わんくて代入できなくなるから・・・そのうちやらんといかん
SAW 2~6、FINAL
Amazon Primeで2から無料だったので見た
3くらいで終わってりゃよかったのに7までいくともうギャグ