* プログラミング言語 Essen #2
-(by [[K]], 2016.08.06)
** これはなに?
-まずは[[Essen]]と[[Essen1]]を読んでね。ここは続きを書きます。

** 基本型
-nul
-int(実際はlongかlong long)
-float(実際はdouble)
-int(中身はlongかlong long)
-float(中身はdouble)
-string
-dir(dirは構造体と配列が融合したようなもの、ディレクトリ)
-演算子型
--演算子dir
--ユーザ定義演算子
--ビルトイン演算子
-関数型
--関数dir
--ユーザ定義関数
--ビルトイン関数

** 演算子の一覧
-(...)
--[1-1] 関数名(...)の形で使った場合: 関数呼び出し演算子
---func(1, 2)とか。
--[1-2] &(...)の形で使った場合: 代入可能dir生成演算子
--[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



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS