X



Ruby 初心者スレッド Part 62

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
垢版 |
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
0803デフォルトの名無しさん
垢版 |
2018/03/02(金) 07:54:43.19ID:mIGjbFX+
Windows のirb でも、ascii 以外は正常に動かないから、
irb を使う時だけ、WSL・Ubuntu の方を使っている

UTF-8 では、cp932(shift-jis)が読めないのだろう

起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?

UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう

とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる
0804803
垢版 |
2018/03/02(金) 11:51:22.61ID:mIGjbFX+
Windows のPowerShell から、Ruby の1-liner を実行すると、ファイル名だけが\x 表示された。
PowerShellのデフォルト文字コードが、UTF-8 だから、フォルダ名は正常に表示された

> ruby -rfileutils -e "puts FileUtils.pwd"
C:/Users/Owner/Documents/あいう

> ruby -e "p Dir.glob('*')"
["\x{8345}\x{8343}\x{838B}\x{8358}.txt", "\x{8376}\x{838D}\x{834F}\x{838C}.txt"]

> ruby -E :shift_jis -e "p Dir.glob('*')"
起動オプションに、外部エンコーディングをUTF-8のままで指定せず、
内部エンコーディングだけをshift_jis に指定すると、正常に表示された
["ウイルス.txt", "プログレ.txt"]

漏れは一々、起動時やファイル内に、文字コードを指定するのが面倒なので、
Windowsのユーザー環境変数に、RUBYOPT を追加して、--encoding=UTF-8 を設定している。
ただし、こうすると、irb が動かなくなるので、Windows10 のWSL・Ubuntu のirb を使っている

一方、WSL・Ubuntu・bash から、上記を実行すると、
デフォルトで、どちらも正常に表示された

Windows で実行する場合は、PowerShellはUTF-8、コマンドプロンプトはCP932 がデフォルトだから、
これらのシェルの文字コードか、Ruby側の文字コードを指定する

まあ、shift_jis の処理は、危険だと思う。
@などのWindows独自のCP932文字(環境依存文字)があって、
shift_jis・CP932は微妙に異なるから、どこまで正常に動くか分からない
0805デフォルトの名無しさん
垢版 |
2018/03/02(金) 12:00:42.65ID:OCKmRFPd
なにをごちゃごちゃやってんだ?

こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ

コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?
0806デフォルトの名無しさん
垢版 |
2018/03/02(金) 12:39:35.62ID:vnF4MMGw
元々はwindowsのワイド文字をうまくutf8に変換してやってこうという方針だったのに
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど
0807803
垢版 |
2018/03/02(金) 13:14:57.35ID:mIGjbFX+
Rubyist は、RubyでGem を作れるけど、C で低レベルなI/O を書けるわけじゃない

また、Linux・Windows の両方に対応させるのは、難しい
0808803
垢版 |
2018/03/02(金) 16:17:45.17ID:mIGjbFX+
library irb/input-method
https://docs.ruby-lang.org/ja/latest/library/irb=2finput=2dmethod.html

class IRB::ReadlineInputMethod のソースコードを見れば良いの?
それとも、GNU Readline のソースコードかな?

Windows のirb で、日本語がバグるのは、
根本的に、GNU Readline が、Windowsの日本語を考慮していないからじゃないの?
0809デフォルトの名無しさん
垢版 |
2018/03/02(金) 16:40:11.45ID:ypGJ9h8+
というかrubyコミュニティがwindowsを考慮してない。
むしろ怨み、蔑み、嫌っている。昔から。
0810デフォルトの名無しさん
垢版 |
2018/03/02(金) 17:18:20.26ID:0lL3/u0V
>>809
そだねー
0811803
垢版 |
2018/03/02(金) 17:55:40.44ID:mIGjbFX+
console.log("あ");

Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く
0812デフォルトの名無しさん
垢版 |
2018/03/02(金) 23:07:42.42ID:wSJnGqkk
RubyはLinuxで動かすようにすればいいよ
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ

Windowsマシンでの開発ならVMかDocker使えばすべて解決
0813デフォルトの名無しさん
垢版 |
2018/03/03(土) 01:14:23.68ID:vdurK0jv
ありがとうございました
ググってみたら結構前から報告されていたバグみたいなので諦めることにします
0814デフォルトの名無しさん
垢版 |
2018/03/03(土) 01:19:41.29ID:GGmAMA7z
>>800
$LOAD_PATHをforce_encoding()で環境に適応したエンコーディングを設定したら?
あるいは、バイナリに設定して、むりやりそれっぽいバイトデータをつっこむとか?
0816デフォルトの名無しさん
垢版 |
2018/03/03(土) 15:41:40.19ID:VQ/a88pK
cmd で chcp 65001 するくらいなら
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ
0817デフォルトの名無しさん
垢版 |
2018/03/03(土) 15:43:54.56ID:x/6oRrTp
65001 は右端とか折り返し表示がバグるね
0818803
垢版 |
2018/03/03(土) 15:49:49.91ID:HcfLoqAp
Ruby の起動オプションに、外部・内部エンコーディングか、RUBYOPT で指定できる。
ファイル内でも指定できる

それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる

これらの組み合わせの中で、文字化けしない組み合わせを探す

または、$LOAD_PATH の辺りで、指定するとか
0819デフォルトの名無しさん
垢版 |
2018/03/03(土) 17:58:14.02ID:URsJSGy/
Rubyの2.5.0p2をRubyインストーラーでインストールしたらRubyの2.5.0p0だった・・・
0823デフォルトの名無しさん
垢版 |
2018/03/03(土) 21:55:10.06ID:GRjh9/QH
そういうことだから理解できない初心者は間違ってもrubyなんか使おうと思わないようにね。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。
0824デフォルトの名無しさん
垢版 |
2018/03/03(土) 21:56:04.27ID:ETPjeMg1
書籍のサンプルコードの一部です
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります

@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt
0825デフォルトの名無しさん
垢版 |
2018/03/03(土) 22:30:11.11ID:gHPIEkfR
>>824
[remain, pre]は辞書のキーって理解であってる
irb等のREPLで試すとすぐ分かる
@はインスタンス変数に付けるプレフィクス
0828デフォルトの名無しさん
垢版 |
2018/03/04(日) 04:12:18.75ID:aAfADGFK
オブジェクトはなんでもイケるんじゃなかったっけ?
ハッシュ値さえちゃんと返せば。
0829デフォルトの名無しさん
垢版 |
2018/03/04(日) 11:33:10.30ID:7gUy2hud
キーにした配列を変化させた時はrehashしないとキーが一致しなくなる
文字列のキーは変化させても、キーはセットしたときのまま
0830デフォルトの名無しさん
垢版 |
2018/03/04(日) 11:34:10.89ID:Oz1ASWrr
なるほどね。先入観として[a,b]ってかいたら毎回newされて、
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた
0831デフォルトの名無しさん
垢版 |
2018/03/05(月) 16:37:38.89ID:62GuhFZ7
str = <<'EOT'
str = << 'EOT'

here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる

それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、

改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる
0833831
垢版 |
2018/03/05(月) 19:10:41.11ID:62GuhFZ7
options に行区切りを指定したら、

WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた

row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる
0834デフォルトの名無しさん
垢版 |
2018/03/05(月) 21:53:10.11ID:K/Y9LwEe
require ‘pry’
def foo;@a = 1;end
binding.pry

このコードを実行し、出て来たプロンプトで
> cd Object
> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml]

と出ました。fooメソッドが見つかりません。
トップレベルで定義したfooメソッドはObjectのメソッドに成るのでは?

ちなみにコマンドラインでpryとタイプして
[1] pry(main)> def foo;@a=0;end
=> :foo
[2] pry(main)> cd Object
[3] pry(Object):1> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml, :foo]
[4] pry(Object):1>
ちゃんとfooが見えます。
0835デフォルトの名無しさん
垢版 |
2018/03/05(月) 22:05:54.92ID:K/Y9LwEe
自己解決しました。
[1] pry(main)> self.private_methods(false)
とすれば見えました。
0837デフォルトの名無しさん
垢版 |
2018/03/15(木) 18:29:02.24ID:5enxwtKu
RubyからDB扱うときって皆は何のライブラリ使ってるの?
0838デフォルトの名無しさん
垢版 |
2018/03/15(木) 19:28:59.60ID:tIXtXy4E
RubyでDBを扱う場合、プロダクションで使われているのは世界で唯一ActiveRecordのみ
0839デフォルトの名無しさん
垢版 |
2018/03/15(木) 21:18:59.56ID:OYGfq7D7
インターフェースじゃん。
バックでmysqlとか動いてるぞ。
いいからちゃんと勉強しろよ。
0841デフォルトの名無しさん
垢版 |
2018/03/15(木) 23:24:57.24ID:xG9lbsTH
>>837
ActiveRecordが大半なのは間違いない

ORMを求めてるならsequel、rom、hanami等
素のDBライブラリならmysql2, sqlite3-ruby, ruby-pg
ArelでSQLを構築してDBライブラリ使ってSQL実行してもいい
0842デフォルトの名無しさん
垢版 |
2018/03/16(金) 15:24:05.43ID:3ma6aQHv
sqlite3
0843デフォルトの名無しさん
垢版 |
2018/03/16(金) 18:23:28.28ID:2Gd98HT2
>>839
Rails屋がSQLすら書けなさそうに見えて腹立つのは分からんでもないけど、今はDBインターフェースの話しかしてないぞ
0844デフォルトの名無しさん
垢版 |
2018/03/16(金) 23:22:04.16ID:yiSYhWxU
「Node.js超入門、掌田津耶乃、2017」を読んでいるけど、JavaScript の基本は、Ruby

Ruby のSinatra, JS のNode.js を、full scratch で書くと、ほぼ同じ

Rails, JSのExpress + Bookshelf が、ほぼ同じ
0846844
垢版 |
2018/03/17(土) 00:05:48.37ID:nxO/ldT7
プログラミング本では、掌田が第一人者。
Unity, UE4 などのゲームエンジンから、最近は、Python, Node.js にも進出

売れる・成長する分野には、必ず掌田が参入してくる。
業界の風見鶏

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails を学ぶ方が簡単。
20時間ほどで読める

後は、YouTube の動画で、OK
0848デフォルトの名無しさん
垢版 |
2018/03/17(土) 00:34:45.99ID:4Xu/HAYS
今の時代、開発速度が速すぎて誰も良い本なんか書けないよ
それを書き終わる頃には時代遅れになってるんだから
0850デフォルトの名無しさん
垢版 |
2018/03/17(土) 01:55:30.84ID:+wQGtQt+
掌田津耶乃はだめな本
山田 祥寛は良い本

という評価が一般的
掌田津耶乃は何冊か読んでいるけど、
見比べてみるとたしかにダメダメなんだなぁ。
0853デフォルトの名無しさん
垢版 |
2018/03/17(土) 09:18:19.49ID:nxO/ldT7
最近は、Python にも、なでしこの作者・クジラ飛行机、
大津真、掌田も、乗り込んできた

この辺は、売れ筋には参入してくる著者

中でも掌田は、ゲームエンジン・言語・Javaのフレームワーク・Node.js など万能
0854デフォルトの名無しさん
垢版 |
2018/03/17(土) 12:59:20.73ID:OC0Ef+g3
またあらぶっとるんか糞荒らし
はやくRubyコミュで発言しろよ屑
0855デフォルトの名無しさん
垢版 |
2018/03/17(土) 14:32:15.41ID:+wQGtQt+
要はね
掌田の出版本を見てみるとわかるが、
初心者を食い物にしている
初心者専用の作者なわけよ、

だからレビューとかで
表面だけかじって書いたかのような本とか
書かれちゃうわけよ。

深く知りもしないであれだけの数の本を書けるわけないよね。
だから掌田はおすすめできないんだわ。

初心者にはいいかもしれないよ?
初心者向けの本ばかり何冊も何年も書き続けているから。
0857デフォルトの名無しさん
垢版 |
2018/03/17(土) 16:43:12.02ID:cWw1OMJa
>>855
ほんそれ
0858844
垢版 |
2018/03/17(土) 19:43:45.96ID:nxO/ldT7
デザインもカラフルで、図解してあるから、すごくわかりやすい。
売れるから、こういう外注予算が大きい

オライリーでは、図解・デザインは無いから、読むのに時間が掛かる。
図解は視覚だから、瞬時に理解できるけど、
言葉の説明だと、それを図に置き換えて、考えないといけないから大変

掌田の本は、ものすごく短時間で理解できるから、効率的。
すごく消化・吸収に良いし、
時間も節約できるから、時給換算すれば大得

漏れには、時間が掛かる・細かい・理解できない、100の知識はいらない。
短時間で、よくわかる、50の基礎知識がさえ有ればよい。
あとは動画を見て、応用するから

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails が分かる

「10日でおぼえる jQuery 入門教室 第2版、山田祥寛(よしひろ)、2013」
この本で、Nokogiri が分かるのと同じ

本が出ていない場合とか、難しい本しかない場合に、非常に役に立つし、速い
0860デフォルトの名無しさん
垢版 |
2018/03/18(日) 12:36:10.41ID:Gg1K6bSi
>>859
頭使ってる?
掌田津耶乃が何冊初心者用の本を出しているか知っている?
ちょっと考えれば、
英語、ドイツ語、フランス語の言語学習の本を書いたとしたら
その言語のことをどこまで知っていて本を書いているんだろうとか気にならないの?
もし気にならないんだったら、表面的な知識だけで満足しているお前とは合わないのでバイバイ ノシ

Amazon.co.jp: 掌田 津耶乃:作品一覧、著者略歴
https://www.amazon.co.jp/%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/e/B004L5AED8/ref=sr_tc_2_0?qid=1521344021&;sr=8-2-ent
掌田津耶乃(しょうだつやの)。ほぼ男性。テクニカルライター兼3流プログラマ。

自分でも3流プログラマと認めているのに、まったく信者って奴は・・・
0862デフォルトの名無しさん
垢版 |
2018/03/18(日) 12:55:57.40ID:QAeUSVF3
基本的に流行ってるものを、ざっと調べてまとめただけなんだろうな
だから初心者レベルのところまでしか書けない
概要を知るところまでで、あれを参考にしてコードを書いてはいけない
0863デフォルトの名無しさん
垢版 |
2018/03/18(日) 16:36:38.11ID:Aq9RvNC1
HypaerCardの本も出してたから もう30年以上初心者向けの本出してるベテラン 
0864デフォルトの名無しさん
垢版 |
2018/03/18(日) 19:04:35.10ID:Pu83I0V3
Amazonのレビューでよく思うけど、海外の人は褒めるのが上手。いい面を見てる
日本人は100点じゃなきゃ糞みたいな心の狭い人が多い
初心者向けの本なんかにケチつけなくてもいいだろうに
今は公式サイトのドキュメントが充実してる時代なんだから、ほぼ公式くらいのことしか書かんだろうよ
0865デフォルトの名無しさん
垢版 |
2018/03/18(日) 19:43:48.34ID:Gg1K6bSi
そうだな、ネイティブと喋れない、英検準2級、TOEIC500点ぐらいの人が教えているって感じ。
そんなイメージが掌田津耶乃さん。
0867デフォルトの名無しさん
垢版 |
2018/03/18(日) 21:55:23.04ID:JzaiKxSG
>>860
いや長文必死にならなくても、お前さんが自分で解説するだけの知力すら無いってのは分かったから。
0868デフォルトの名無しさん
垢版 |
2018/03/18(日) 21:59:08.72ID:QAeUSVF3
なんで作者本人が自分で三流ですって言ってるのに、
他人が三流であると解説する必要があるんだ?
0870デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:24:43.53ID:JFJ3EKTR
Java, Ruby のフレームワークを書ける人は、少ない。
山田祥寛(よしひろ)、掌田津耶乃、宮本信二、黒田努など

山田は会社向けの、1日4万円の講座などを開いている

一方、掌田は初心者向け。
Unity, UE4 などのゲームエンジン、
Python などの売れ筋言語、
Spring などのJavaのフレームワーク、
Node.js + Express などのJavaScript のフレームワークなど、万能

山田は会社員、掌田は初心者と、ターゲットが異なる。
もし、同じターゲットなら、両雄並び立たずで、共倒れするから
0871デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:54:42.62ID:3ZuC3w8U
自演注意
自演注意
自演注意
0872デフォルトの名無しさん
垢版 |
2018/03/19(月) 04:32:11.24ID:csFbH6Mx
File.open('test.txt', 'r+') do |io|
text = io.read
io.rewind

io.write 'あ'
p io.pos #=> 3

io.truncate io.pos
end

読み書き両用ファイルの、ファイルサイズを減らして、上書きできた

io.rewind で、ファイルポインタを先頭に巻き戻す。
io.truncate io.pos で、現在のファイルポインタの位置で、ファイルを切り詰める
0874デフォルトの名無しさん
垢版 |
2018/03/21(水) 00:56:42.17ID:p8DsWgGG
変なこと聞くけどさ、rspecでさ、まあ適当にサンプル書くけど

describe "hoge do
 before do
  ・・・
 end

 context do
  let(:a) { 1 }
  ・・・
  it 'hage' do
   expect(a).to be 1
  end
 end
end

コレに限った話じゃなくて、rspecの使い方で内側のブロック(例えばitの中)から
外側のブロック(例えばcontextの中)の状態(例えば変数)を
書き換えるのを禁止にしても何の問題もないよね?もちろん参照するのはOK。
テストはどう有るべきかを考えたら、むしろそうした方が良いぐらいじゃないかって思うんだけどどうかな?
0875デフォルトの名無しさん
垢版 |
2018/03/21(水) 01:22:34.72ID:qUqb4QSc
ネストしたcontextで
内側のcontextが外側のcontextで設定した状態を
書き換えるような形でテストを書いても別にいいと思うけどな
0878デフォルトの名無しさん
垢版 |
2018/03/21(水) 07:02:14.53ID:wxFTzoek
外部への依存が少なければ、個々のテストの独立性が高いから、
バグが減るし、テストを並行実行できる

それが理想だけど、実現するのは難しそう
0880デフォルトの名無しさん
垢版 |
2018/03/21(水) 16:22:28.39ID:p8DsWgGG
>>879
上書き?
letは新たにローカル関数を作るようなもので
親ブロックのaを上書きなんかしてないよ
0883デフォルトの名無しさん
垢版 |
2018/03/30(金) 15:22:33.47ID:87KFZNYL
Chrome 65 になったら、selenium webdriver が動かなくなったので、
chrome driver 2.37 を、ダウンロードしてみた

これで動くかどうかは、まだ試してないけど
0884883
垢版 |
2018/03/30(金) 20:31:06.53ID:87KFZNYL
新しいバージョンの、chrome driver にしたら動いた
0885デフォルトの名無しさん
垢版 |
2018/04/01(日) 16:44:40.27ID:0KaYXtgi
すみません、質問があります。
他人様の書いたコードを読んで写経しながら勉強していた所、
begin
#何らかの処理A(特に例外を出しそうな処理ではない)
end until hoge

という記述があったのですが、この書式の意味というか意図がいまいちつかめなくて困っています。
自分でコードを書いて試してみた所、この記述はhogeがtrueでもfalseでも処理Aを実行しており、
特に「until hoge」の部分で何を制御したいのかがわかりません。

(begin
#処理
end) until hoge

例えば、↑の書き方だと単純なuntil文の後置修飾になるので意味がわかるのですが、
上述のような書式で書く理由や、こう書くとどういうメリットがあるかを教えていただけますと嬉しいです。
よろしくお願いいたします。
0887デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:15:27.40ID:9myXjpPz
>>885
下のAとBは同じことをするんだけど、Aだと1行目と4行目が同じでもやっとするのでBのように書いているのでは
個人的にはbegin〜endをメソッドにしてこうは書かないけど
begin〜end untilのほかにもbegin〜end whileも同様

# A
i = Time.now.sec
until i % 3 == 0
p i
i = Time.now.sec
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0
0888デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:18:46.83ID:9myXjpPz
訂正

# A
i = Time.now.sec
p i
until i % 3 == 0
i = Time.now.sec
p i
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0
0889デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:32:20.95ID:0KaYXtgi
>>887-888
ご回答頂きどうもありがとうございます。
なるほど、この書式だとbegin~end内の処理が1回は必ず実行されて、
その後に条件文で判定されるようになるので、同じ処理(例だと代入処理)を2度書かなくて済むようになるんですね。

とても勉強になりました。

個人的にはコード行数が増えたり同じ処理が連続するよりも、
ひと目で意図する処理が他人に伝わらないのはちょっと嫌なのでこの書き方は真似しないようにします……。
0890デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:40:44.12ID:KXX7rc47
いや、それはおかしい。
リトライやリドゥーみたいな処理で、必要であれば、ためらわずそう書くべき。多少わかりにくくても。
いずれ慣れるから。

なんなら、先頭にコメントをつけとけば。
0892デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:00:28.18ID:ZcGM330i
(なにかしら).method

do
なにかしら
end メソッド


みたいなもんだからRuby規則に沿っているだろ
0895デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:27:29.70ID:Aa3HndXz
英語的な自然さを求めるなら、loopをendのエイリアスということにして loop while/until かな
VBがそんな感じだったはず
まあジャップ製言語だから仕方ないね
0896デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:31:46.49ID://EuH1G7
>>893
beginの中が長いと上から読んでてループするんだかrescueするんだかわかりにくいからじゃない?
ruby-style-guideはコメントを極力書かないで済むようにするのが目的の一つだから
まあ個人的には首肯しかねるルールもいくつかあるけどね
0897デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:43:23.68ID:hwmab9Mq
>>896
それもあるね
日本人からすると「〜〜(長い長い手続き)〜〜をループさせろ」は自然な流れだけど、
向こうの人からすると「結論から話せやファッキンジャップ」だろうな
0899デフォルトの名無しさん
垢版 |
2018/04/02(月) 12:57:38.84ID:g/2XFKpH
ブロッキング条件なら後に来るの自然に感じる
長過ぎるとってのはどんなブロックでも同じ
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況