ここから本文です

Rubyとpythonって、{}がなくって、可読性が悪くないですか?

mas********さん

2016/2/2522:11:14

Rubyとpythonって、{}がなくって、可読性が悪くないですか?

慣れもあるんだろうけど・・・、{}はよい目印になる。


Perlだと、forループは
for ( $i=1; $i<=5; $i++) {
__print $i;
}

Rubyだと
for i in 1..5 do
__print(i, "¥n")
end

ちなみに、do,begin,endを使うPascalだと、これ。

for i := 0 to 5 do
begin
__IntToStr(i);
end;
//中身が一行だと、beginとendは略せるんだが、複数行があることを想定しているので。

pythonだと
for i in [0, 1, 2, 3, 4, 5]:
__print str(i)

識別するのに、do, :だけってのも、わかりづらいような?
Pascalのdo begin endは、少し長いし。

そういう意味では、PerlやPHPは、{}という他に使われない記号なので、分かりやすい。
pythonは、タブがインデントになるので、見た目はきれいに見えるけど。(個人的な感想。

敷いて言えば、プログラム上でよく使う、={}ってShiftを押さないと出てこないので、入力しやすいとは、また別なんだけど。

Rubyやpythonは、それほど詳しくないので、違っている部分があったら、軽く突っ込んでください。
あと回答は、3〜10行くらい希望で。

Rubyとpythonって、{}がなくって、可読性が悪くないですか?
慣れもあるんだろうけど・・・、{}はよい目印になりますよね?

閲覧数:
717
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

vie********さん

2016/2/2621:06:36

Ruby については、私は慣れだと思っています。少なくとも私は do-end の終点や始点を見極めるのに苦労した経験はないです。
(一応、Ruby のブロックつきメソッド呼び出しでは { } と do-end の両方が使えるのですが)

Python では、C や Ruby など他の多くの言語と違ってインデントが文法の一部であるため、そもそも } や end に相当するものがありません。
つまり、インデントのみからブロックの始点と終点を確実に判別することができますから、この点に関して可読性はむしろ高いのではないでしょうか。

---

ちなみに、Ruby では for はほとんど使われていない気がします。

for i in a
  b = x
end



i = nil; b = nil
a.each { |_i|
  i = _i
  b = x
}

とほぼ等しく、つまり i, b には最後のループで代入された値が残ってしまいます。
この挙動が不要な場合は、単純に

a.each { |i|
  b = x
}

もしくは do-end を使用して

a.each do |i|
  b = x
end

質問した人からのコメント

2016/3/4 00:03:52

まぁ、みなさんの言いたいことはわかります。
ただ、{}が通常変数や関数名にはらない記号である有利さは、ご理解いただけるところかと。
あとは、そこをどの程度気にするか?って点ですが。


体験談は、とても参考になりました。
ありがとうございます。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

dom********さん

2016/2/2701:01:56

bla********さん

2016/2/2700:29:41

その理屈だとLISPが一番可読性高いことにならない……?

(for-each
(display) '(1,2,3,4,5))
)

nop********さん

2016/2/2622:09:16

{ }を用いる言語であっても、可読性を左右するのはどちらかと言えば改行とインデントです。
コードブロックのネストの深さを知る為に、{や}を数えたがる人間は居ません。
数えないで済む為には、必ず統一されたルールでインデントを揃えなくてはいけません。
{ }はどちらかと言うと、ブロックの範囲をコンパイラやインタプリタに伝える為のものです。

あなたが可読性に優れると思うコードを改めて見てみて下さい。
その言語が{ }を使おうが使うまいが、そのコードは適度に改行され、
綺麗にインデントされ、識別子には適切な名前が付けられて居るはずです。

{と}の数が合っていても、インデントが不揃いで、改行がないコードは読み難いでしょう。
これは慣れや好みの差ではなく、絶対です。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる