インデント / セミコロン 2014/02/22
C言語 / C++ | Go言語 | Java | Scala | Groovy | PHP | Python | Ruby | Perl | sh | JavaScript | CoffeeScript | |
ブロック | {} |
{} |
{} |
{} |
{} |
{} |
インデント | {} |
{} |
インデント | ||
行末セミコロン | 省略不可 | 省略可 | 省略不可 | 省略可 | 省略可 | 省略不可 | 省略可 | 省略可 | 省略不可 | 省略可 | 省略可 | 省略可 |
C言語, C++ 2013/04/22
- ブロックは {} で表現
- 行末のセミコロンは省略不可
Go言語 2013/06/19
- ブロックは {} で表現
- 行末のセミコロンは省略可
Java 2014/02/22
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略不可
Scala 2013/04/22
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略可
Groovy 2013/10/01
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略可
PHP 2013/04/22
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略不可
Python 2014/04/12
- ブロックをインデントで表現
- 行末のセミコロンは省略可(省略推奨)
トップレベルではインデントをしてはいけない。
Pythonのインデント志向を削除して普通の言語っぽく書けるようにした Python with Braces というものがあるらしい。
Python with Braces
http://www.pythonb.org/
Ruby / JRuby 2013/04/22
- ブロックはブロック開始のキーワード(
def
,do
など)とブロック終了のキーワード(end
)で表現 - 行末のセミコロンは省略可
Perl 2013/07/27
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略不可
sh (シェルスクリプト) 2013/09/20
- 行末のセミコロンは省略可
JavaScript 2014/02/22
- ブロックはC言語ライクに {} で表現
- 行末のセミコロンは省略可
改行 2013/09/18
http://masatokinugawa.l0.cm/2013/09/u2028u2029.domxss.html
ECMAScriptの仕様では、0x0A/0x0D以外にU+2028/2029の文字も改行とすることが明記されています。
以下の理由でセキュリティ上の問題になりやすい
- 単一行コメントが”改行”で終了する
- 正規表現のドットが”改行”にマッチしない
- IEやChromeではURLにU+2028/2029をエンコードせずに含められる
CoffeeScript 2013/04/22
- ブロックをインデントで表現
- 行末のセミコロンは省略可