Skip to content

Instantly share code, notes, and snippets.

@yamaya
Last active August 29, 2015 14:07
Show Gist options
  • Select an option

  • Save yamaya/c1911f749e01ebef79ed to your computer and use it in GitHub Desktop.

Select an option

Save yamaya/c1911f749e01ebef79ed to your computer and use it in GitHub Desktop.
Overview of Differences & Highlights のざっくり訳

"Overview of Differences & Highlights" - (MoonScript, a language that compiles to Lua) より

シンタックスのより詳しい要約はreference manualにある。

  • ブロックは空白に影響を受けやすく、インデントによって定義される
  • 全ての変数はデフォルトでローカルである
  • グローバル変数を宣言するためにキーワードをエクスポートする、テーブルから値をローカルにコピーするためにキーワードをインポートする
  • 関数呼び出しの丸括弧は rubyのように書かなくてもよい
  • 太い矢印 => は、self引数付きの関数を定義できる
  • @を名前に前置することで、selfが持つ属性を参照できる
  • !演算子は無引数の関数呼び出しに使用出来る
  • 最後の文の型によって、関数戻り値が暗黙的に返される
  • :はテーブルリテラル=の代わりに、キーと値を区別するために使われる
  • ,に加えて、改行もテーブルリテラル項目の区切りとして使われる
  • \:の代わりにオブジェクトのメソッドを呼び出すときに使われる
  • +=-=/=*=%= 演算子
  • !=~=のエイリアスである
  • テーブルは簡易なスライスとイテレータのシンタックスを理解する
  • 行は、行末のforループとif文で修飾できる
  • if文は式として使える
  • 継承可能なクラスシステはメタテーブルの__index属性を基礎におく
  • コンストラクタ引数を@で始める事で、自動的にオブジェクトへ割り当てる
  • クラスメソッドにおいて、同名の親クラスのメソッドにマップするMagic super function
  • with分は短い文法で無名オブジェクトにアクセスできる
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment