Feature #17598
closed
直後の改行を無視する命令(......)
Description
改行を無視する命令、今 \(\n) となっている命令についてです。 ...... を提案します。
(0... ......
5).each ......
.map{_1} ...... # some comments
=> ar
# (0...5).each.map{_1} => ar
(1) 本当は ... が一番良いと思います。しかし Range で使われています。
(2) 一番良いのが使えないなら長くしよう。 ......
(3) 実際に使うのなら .... が妥当?
(4) .... と ...... の両方作っちゃえ。
私は実験的に (2) を希望します。
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
- Description updated (diff)
「命令」というよりは構文要素、トークンだと思います。
Updated by Anonymous over 4 years ago
...... は長過ぎると思ったので取り止めます。
(1) --
読みやすく書きやすい。 --と手前にスペースを2つが読みやすくてオススメ? (×) Ruby
では使われていないが、デクリメントが使えなくなる。(イテレータ用?)
(2) "\\;"
改行のエスケープと意味が分かりやすい。 "\\\n" と似ている。 (×)
斜めの線が入って読みにくい?単一の記号の連続の方がタイプしやすい?スクリプト言語っぽくない??
(3) .... (4文字ドット)
見た目から意味を推測しやすい。 (×) 4文字は長い。3文字 ... はRange や任意個の引数のようにすでに多くの記号に使われている。
この案の中では (1) が良いと思います。
Updated by sawa (Tsuyoshi Sawada) over 4 years ago
提示された例が良くないと思います。例示された例は、 ...... がなくても、そのまま動きます。
Updated by sawa (Tsuyoshi Sawada) over 4 years ago
行末の \ を ...... に置き換えて何が良いのでしょうか。私は行末の \ のほうが見やすいと思います。
Updated by hattorihiroaki318 (Hiroaki Hattori) over 4 years ago
私の最終提案です。
改行の無視は前の行のインデントより4文字以上深い行でします。
これを避けるには空白文字だけの(コメントもない)空行を2行以上入れます。1行だけだと改行無視をします。
3.times.map{_1}
=> ar # => [0,1,2]
3.times.map{_1}
=> ar # => [0,1,2]
3.times.map{_1}
=> ar # => Error
3.times.map{_1}
# -- comments --
=> ar # => [0,1,2]
3.times.map{_1}
# -- comments --
=> ar # => Error
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
- Status changed from Open to Feedback
これがあると何がどう嬉しいのでしょうか。
少なくともインデントルールをrubyに導入するのはかなり困難だと思います。慣習的にも実装的にも。