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) about 4 years ago
- Description updated (diff)
「命令」というよりは構文要素、トークンだと思います。
Updated by Anonymous about 4 years ago
......
は長過ぎると思ったので取り止めます。
(1) --
読みやすく書きやすい。 --
と手前にスペースを2つが読みやすくてオススメ? (×) Ruby
では使われていないが、デクリメントが使えなくなる。(イテレータ用?)
(2) "\\;"
改行のエスケープと意味が分かりやすい。 "\\\n"
と似ている。 (×)
斜めの線が入って読みにくい?単一の記号の連続の方がタイプしやすい?スクリプト言語っぽくない??
(3) ....
(4文字ドット)
見た目から意味を推測しやすい。 (×) 4文字は長い。3文字 ...
はRange や任意個の引数のようにすでに多くの記号に使われている。
この案の中では (1) が良いと思います。
Updated by sawa (Tsuyoshi Sawada) about 4 years ago
提示された例が良くないと思います。例示された例は、 ......
がなくても、そのまま動きます。
Updated by sawa (Tsuyoshi Sawada) about 4 years ago
行末の \
を ......
に置き換えて何が良いのでしょうか。私は行末の \
のほうが見やすいと思います。
Updated by hattorihiroaki318 (Hiroaki Hattori) about 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) about 4 years ago
- Status changed from Open to Feedback
これがあると何がどう嬉しいのでしょうか。
少なくともインデントルールをrubyに導入するのはかなり困難だと思います。慣習的にも実装的にも。