* プログラミング言語 Essen #2 -(by [[K]], 2016.08.06) ** これはなに? -まずは[[Essen]]と[[Essen1]]を読んでね。ここは続きを書きます。 ** 基本型 -nul -int(中身はlongかlong long) -float(中身はdouble) -string -dir(dirは構造体と配列が融合したようなもの、ディレクトリ) -演算子型 --演算子dir --ユーザ定義演算子 --ビルトイン演算子 -関数型 --関数dir --ユーザ定義関数 --ビルトイン関数 ** 演算子の一覧 -(...) --[1-1] 関数名(...)の形で使った場合: 関数呼び出し演算子 ---func(1, 2)とか。 --[1-2] &(...)の形で使った場合: 要素代入可能dir生成演算子 ---&(a, b)=(1, 2)とすると、a=1,b=2になる。 ---&(a, b)=(b, a)とすると、aとbをテンポラリ変数なしで交換できる。 --[1-3] (...)の形で使った場合: dir生成演算子 ---(1, 2, 3)みたいに使う。 (name:"kawai", os:"haribote")みたいにもできる。 --[1-4] _(...)の形で使った場合: 優先順位変更演算子 ---括弧の中は先に計算を行う --[1-5] __(...)の形で使った場合: dir展開演算子 ---p __(1, 2, 3)は p 1, 2, 3 と同じ結果になる。 -# --[2-1] 代入式の左辺に#をつけると、ローカル変数の変数宣言ができる。 ---#a=1 --[2-2] 代入式の左辺に##をつけると、ローカル変数が未定義の場合のみ初期値代入を行う。定義済みであれば何もしない。 ---##a=0 --[2-3] 上記以外の文脈で#をつけると、基本的に無視されるが、nulの前に#が付いたときは、nul参照エラーを抑制し、期待される型に応じた0として機能する。 --[2-3] 上記以外の文脈で#をつけると、基本的に無視されるが、nulの前に#が付いたときは、nul参照エラーを抑制し、演算結果も#nulとする。 ---主に未定義変数(=nulとみなされる)を使ってもいちいちエラーにならないようにするために使う。 ---b=#a+3 ---なお、#nulはbに代入されるタイミングでnulになる(変数に#nulは代入できない)。 --[2-4] 上記以外の文脈で##をつけると、基本的に無視されるが、nulの前に#が付いたときは、nul参照エラーを抑制し、期待される型に応じた0として機能する。 ---int/floatなら0、strなら""、dirなら() ---主に未定義変数(=nulとみなされる)を使ってもいちいちエラーにならないようにするために使う。 ---b=#a+3 ---b=##a+3 -& --[3-1] 代入式の左辺に&をつけると、いわゆる参照型になる。 ---&b=aとすれば、bに対する操作はaに対する操作と等価になる。つまりbに代入するとaも変化する。aに代入すればbも変化する。 --[3-2] int & intとして二項演算子として使えば、ビット演算になる。 * こめんと欄 #comment