削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎Hello, World!: [TODO: コマンドラインツール crystal の解説。 crystal ファイル名 は crystal run ファイル名 の短縮形で、インタープリタ的な実行…ではなく、内部ビルドツールでコンパイル・実行を行う]
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎for式がない?!: Crystal には、Ruby にはある for式がありません。
タグ: 2017年版ソースエディター
127 行
</syntaxhighlight>
: Crystal では、数値リテラルに _ で始まるサーフィックスを付け { i:符号付き整数, u:符号なし整数, f:浮動小数点数 } と { 8,16,32,64 } のビット幅の組合せです<ref>[https://crystal-lang.org/reference/1.5/syntax_and_semantics/literals/ Literals]</ref>。
 
=== for式がない?! ===
Crystal には、Ruby にはある for式がありません。
;Rubyのfor式の構文:<syntaxhighlight lang="ruby">
for 変数 in コレクション
end
</syntaxhighlight>
:コレクションは Range, Array, Hash など内部構造を持つオブジェクトです。
:for式は、最後に評価した値を返すので、for'''式'''です。
 
;for式のeachメソッドによる置換え:<syntaxhighlight lang="ruby">
for x in [ 2, 3, 5, 7, 11 ] do
p x
end
# ↓
[ 2, 3, 5, 7, 11 ].each do | x |
p x
end
</syntaxhighlight>
: の様にコレクションの each メソッドで置換え可能なので、Rubyからの移植でも小規模な書換えで済みます(後述のマクロで実装できないかと思いましたが、いまのところ無理のようです)。
また loop 式もありませんが while true; … end で間に合います。Ruby では while 式の条件の次に do が置けますが、Crystal では置けません。
 
== 脚註 ==