プログラミング言語 Essen #2
これはなに?
基本型
- nul
- int(中身はlongかlong long)
- float(中身はdouble)
- string
- dir(dirは構造体と配列が融合したようなもの、ディレクトリ)
- 演算子型
- 関数型
演算子の一覧
- (...)
- [1-1] 関数名(...)の形で使った場合: 関数呼び出し演算子
- [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] 代入式の左辺に#をつけると、ローカル変数の変数宣言ができる。
- [2-2] 代入式の左辺に##をつけると、ローカル変数が未定義の場合のみ初期値代入を行う。定義済みであれば何もしない。
- [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
- &
- [3-1] 代入式の左辺に&をつけると、いわゆる参照型になる。
- &b=aとすれば、bに対する操作はaに対する操作と等価になる。つまりbに代入するとaも変化する。aに代入すればbも変化する。
- [3-2] int & intとして二項演算子として使えば、ビット演算になる。
こめんと欄
|