削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎演算子: Crystalは、1つ、2つ、または3つのオペランドを持つ数多くの演算子をサポートしています<ref>[https://crystal-lang.org/reference/1.5/syntax_and_semantics/operators.html Operators]access-date:2022-07-22</ref>。 演算子式は、実際にはメソッド呼び出しとしてパースされます。例えば、<code>a + b</code> は <code>a.+(b)</code> と意味的に同じで、引数 b を持つ a のメソッド + を呼び出すことになります。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
1,181 行
iter = 3.times
puts iter.class
putsp! iter.next # 0
putsp! iter.next # 1
putsp! iter.next # 2
p! iter.next
p! iter.next
p! iter.next
# puts iter.next # `next': StopIteration: iteration reached an end
</syntaxhighlight>
;実行結果:<syntaxhighlight lang="text">
Int::TimesIterator(Int32)
iter.next # => 0
0
iter.next # => 1
1
iter.next # => 2
2
iter.next # => #<Iterator::Stop:0x7fb5bedd7fe0>
iter.next # => #<Iterator::Stop:0x7fb5bedd7fe0>
iter.next # => #<Iterator::Stop:0x7fb5bedd7fe0>
</syntaxhighlight>
: Integer#times にブロックを渡さないと、Int::TimesIterator([T])オブジェクトが返ります。