プログラミング言語 Essen #2

  • (by K, 2016.08.06)

これはなに?

  • まずはEssenEssen1を読んでね。ここは続きを書きます。

基本型

  • 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参照エラーを抑制し、演算結果も#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として二項演算子として使えば、ビット演算になる。

こめんと欄


コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-07 (日) 08:40:43 (2983d)