Ruby 初心者スレッド Part 65

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f80-JI52)
垢版 |
2018/12/22(土) 04:43:34.03ID:84E3pYZa0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

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

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

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

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
356デフォルトの名無しさん (ワイーワ2 FF63-grM/)
垢版 |
2019/04/16(火) 15:42:10.89ID:vZl8q5zBF
perlの読み難さに嫌気が差して造られた言語なのにperlの悪い所を引き摺ってるからな
2019/04/18(木) 11:40:30.01ID:zHViXhbq0
パターンマッチだって
https://bugs.ruby-lang.org/issues/14912
358デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)
垢版 |
2019/04/20(土) 14:24:37.48ID:rcvSJkam0
社員50人の「Ruby 開発」という会社の求人を見た。
東京・大阪で求人

Rubyでは、国内3位だって!

Cookpad, マネーフォワードに次ぐ会社か?
上場してるのか?
2019/04/20(土) 15:03:38.48ID:rcvSJkam0
変換表を使って、置換できるのは便利!

hash = { 'ab' => 'あ', 'xy' => 'ん' }

p re = Regexp.union( hash.keys ) #=> /ab|xy/

p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx

gsub(pattern, hash) -> String
文字列中の pattern にマッチした部分をキーにして、hash を引いた値で置き換える

hash = {'b'=>'B', 'c'=>'C'}
p "abcabc".gsub(/[bc]/){hash[$&]} #=> "aBCaBC"
p "abcabc".gsub(/[bc]/, hash) #=> "aBCaBC"
2019/04/21(日) 00:33:20.95ID:WKly27nG0
このメソッド設計したやつ頭悪そう
2019/04/21(日) 01:10:32.26ID:8e51ow7Fa
直交性のかけらもない醜悪な仕様だね
2019/04/21(日) 01:22:08.98ID:ODZGWBWT0
直交性の権化とも言えるJavaのライブラリがいいかといえば、そうとも言えないわけで
バランスって大事だよね
2019/04/21(日) 08:25:50.68ID:lCttlvu0M
キャプチャとかグループ参照とかそのへんの問題だと聞いた
ブロック引数じゃないと先に評価されちゃう
2019/04/21(日) 12:41:01.28ID:37BYu4xvM
ブロック使わないと正規表現による置換が全て表現できないとわかった時点で第2引数廃止するべきだったってのは、
まあその通りではあるにはあるのだけども
2019/04/21(日) 13:14:59.11ID:z90qN1ox0
んなこというのは、Ruby者だけやろ。
ふつうは、使い分けりゃいいんだよ。
まあ、他の言語にさんざケチをつけまくったわけだから、Rubyにもケチをつけんとな。

どうでもいい改善のために、後方互換を壊すのはクソ過ぎだが。
366デフォルトの名無しさん (ワッチョイ 092d-RDgi)
垢版 |
2019/04/24(水) 15:15:30.27ID:NuE3hWAT0
最近、Rubyで簡単に稼げたとうたって謎の講座を売りつけようとしてるやつがえっらい増えてんな
HTMLで稼げた系の方が遥かに多いものの、SNSにも動画サイトにもすげえ数あるわ
情報商材屋もアフィリエイトや仮想通貨ネタじゃ食ってけなくなってHTMLネタや延いてはRubyネタまで来たんだろか?
367デフォルトの名無しさん (ワイーワ2 FF1a-ZG7F)
垢版 |
2019/04/24(水) 15:53:51.84ID:KVKHKBwPF
補助金に群がる日本恒例のあれやろ
368デフォルトの名無しさん (アウアウウー Sa1b-ScLU)
垢版 |
2019/05/10(金) 13:07:53.40ID:+ugiu1c8a
Cygwinでruby-test-unitを入れたら/usr/share/gems/にインストールされた。

bundle exec ruby hoge.rbとかするとtest-unitがないって言われる。

gem envするとGEM PATHSに/usr/share/gems/がはいってる。
bundle envするとGem Pathに/usr/share/gems/が入ってる。
bundle exec gem envするとGEM PATHに/usr/share/gems/が入ってない。

bundler使いつつ/usr/share/gems/にあるtest-unitを使うにはどうするのが一番スマート?
2019/05/11(土) 08:15:27.14ID:bKjSBhWB0
Windows では、Ruby Installer のMSYS2 を使うのでは?

漏れは、MSYS2を入れてない(ポータブル版を使っている)から、
web socket などはコンパイルできないけど

64ビットOS で、Ruby 2.4/2.5 なら、
C:\Ruby24-x64
C:\Ruby25-x64

2.6 は、まだ使わず、1年は様子を見た方がよい
370デフォルトの名無しさん (ワッチョイ 375f-4N0r)
垢版 |
2019/05/11(土) 12:41:03.42ID:td9YBJ3L0
windows で ruby はマジでお薦めしない
四の五の言わず VM 入れろ
2019/05/11(土) 14:19:54.60ID:D877RybE0
WSLでいいよ。楽だし。
2019/05/11(土) 15:27:11.07ID:kOi/VI9x0
WSLは、2でかなり様変わりするようやな。。。
素人はまだしばらく様子を見てたほうがエエんちゃう?
2019/05/11(土) 18:03:57.12ID:D877RybE0
もうとっくに様子を見る次期は終わってるよ。
WSLは十分実用になる
2019/05/11(土) 21:06:38.06ID:btpUiiWv0
windowsでそこまでやりたいか?
特にRubyを使うメリットゼロだろ
素直にlinux使えよって思う
2019/05/11(土) 21:48:13.92ID:kOi/VI9x0
>>373
2は別物だと知ってるか?
2019/05/11(土) 22:12:16.55ID:JJsQ24Nt0
RubyってLinuxじゃなくね
2019/05/11(土) 22:23:46.69ID:D877RybE0
>>375
WSLとWSL 2は共存可能

https://news.mynavi.jp/article/20190508-820096/
> MicrosoftはWSL 2は通常のアップデートの中で提供し、WSLとWSL 2の共存も可能だとしている。

WSL2はまだでてないし、様子見というのはわかる。
だがWSLは様子見の段階は終わってる。

WSL2は様子見してても、WSLを使わない理由はない
WSL2はWSLを改善するのが目的なので、様子見の段階は有るにしろ
最終的にはWSLよりも良いものになる

今はWSLを使えばよい。WSL2が実用レベルだとわかったら乗り換えれば良い
2019/05/12(日) 12:44:36.55ID:SDh+fgbA0
素人は、状況が落ち着いてから乗っかればいいんだよ。
379369 (ワッチョイ 9f2c-NS0m)
垢版 |
2019/05/12(日) 13:38:51.73ID:dSbddX8d0
漏れは、Windows 10 で、Ruby 2.4 を、C:\Ruby24-x64 に入れてる

同時に、WSL, Ubuntu16.04 で、Ruby 2.3を入れてる。
Ubuntu18.04 なら、さらに、Ruby のバージョンも上がっているかも


ただし、1-liner を書く際、Linux では、これで動く。
ls | ruby -ne 'puts $_.center(20, "-")'

一方、Windows では、" でバグるから、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'

"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としないと正常に動かない

%, %Q で、ダブルクォーテーションをエスケープできる。
\"-\"
380デフォルトの名無しさん (ワッチョイ 572d-vM1y)
垢版 |
2019/05/12(日) 14:48:42.32ID:eMjN+/Cm0
>>376
みんなコードを書くのはMac、実行がLinuxってのが普通になっちゃってるからな
Windows版は、「高卒用パソコンなんてサポートしてどうするの」ぐらいの扱いがされてる
2019/05/12(日) 15:19:52.63ID:OoMn1CYl0
>>379
> 一方、Windows では、" でバグるから、
WSLで動かしてるけど、Linuxと同じように使えるよ?
2019/05/12(日) 20:27:41.49ID:EJ9HeJOja
>漏れは、Windows 10 で、Ruby 2.4 を、C:\Ruby24-x64 に入れてる

って言ってるやんけ
2019/05/12(日) 21:19:22.35ID:dSbddX8d0
>>379
では、

これは、Windows 10, WSL, Ubuntu16.04 上でやった。
ls | ruby -ne 'puts $_.center(20, "-")'

一方、Windows 上のPowerShell(PS) では、" でバグるから、 %Q("-") が必要。
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'

つまり、bash, PS など、シェルの種類によって、書き方を変えなければならない

まあ、ls, ls -name とか、他の部分も異なるけど
2019/05/12(日) 21:20:07.98ID:9Y9I0g9l0
お前らずーーーーと同じ話してるな
2019/05/12(日) 21:35:50.19ID:SDh+fgbA0
>>383
全部%クォートで書けば解決!
2019/05/13(月) 14:56:49.71ID:2i/QV07+0
だから、Windowsを使うのを止めれば、すべて解決だよ。
2019/05/13(月) 15:12:47.42ID:biecMsFD0
WindowsでWSLを使ったら全部解決した。ワロタ
MSすごいな。
2019/05/13(月) 21:18:12.41ID:D6B785Bh0
MSのLinuxへの貢献度は昔から高かった。
389デフォルトの名無しさん (アウアウエー Sadf-4N0r)
垢版 |
2019/05/13(月) 21:58:08.28ID:XgdYNs3Ba
ruby が何か努力した訳ではないな
M$ が頑張ってくれただけ
390デフォルトの名無しさん (ワッチョイ f0ba-N32O)
垢版 |
2019/05/20(月) 23:17:13.22ID:uii5Lp4R0
初心者すぎてすみませんがprogateのrubyを2回やり終えたんですが
次は何やるのがお勧めでしょう?
同じくprogateのruby on railsに進むべきか
たのしいrubyや3ステップで学ぶruby入門などの書籍を読むべきか
あるいは他に何かありますでしょうか?
2019/05/21(火) 00:23:24.65ID:Ks32/nFwa
>>390
いいから何か作ってみなよ
392デフォルトの名無しさん (ワッチョイ f82d-Q2B8)
垢版 |
2019/05/21(火) 02:18:15.20ID:NmxJjL0u0
>>390
俺と一緒にRubyMotionをやらないか
2019/05/21(火) 09:41:17.03ID:2vqnZrlM0
>>392
やる!
2019/05/21(火) 12:37:52.02ID:ZAINLMmO0
この3冊を読む。
たのしいRuby 第6版、2019/3/19
Effective Ruby、2015
改訂2版 Ruby逆引きハンドブック、2018/8/28

「たのしいRuby」だけ読んでも、そこそこプログラミングできる!

Linux の基本コマンドを30ぐらい見て、
1-liner とか、パイプラインのフィルターでも作ってみれば?

他には、Enumerable の文書で、どういう機能があるか理解する
2019/05/29(水) 22:37:17.50ID:axNbAI7/M
例えばNet::HTTPみたいな::がある場合のautoloadってどう書けばいいの?
現時点ではautoload :Net,'net/http'みたいにしてるんだけど、
これだとNet::SMTPを参照しても読み込んじゃうよね
2019/05/31(金) 00:09:30.12ID:P50R/Vqw0
キーワードなのかKernel関数なのかさっぱりわからないんですが見分け方を教えてください
rubyの場合は動的直接拡張もあるのでパンクしてやばいです
2019/05/31(金) 07:25:34.79ID:sU0K1/9C0
>>396
予約語は公式リファレンスに書いてある
2019/05/31(金) 23:50:45.29ID:TSXZ3QWc0
>>396
IDE使えばいいんじゃね
2019/06/04(火) 08:33:21.09ID:oR7ssn0w0
初心者にも満たない学習者です
他人様のコードで申し訳ないんですが

(ttp://2d6.parasite.jp/rgss/script/restart.html)

class Scene_Title
 (中略)
 def read_save_data(file)
  (中略)
  characters = Marshal.load(file)
  (中略)
  Graphics.frame_count = Marshal.load(file)
  (中略)
  $game_variables   = Marshal.load(file)
  $game_self_switches = Marshal.load(file)
  (中略)
 end
end

これ、どう読んで解釈したら良いんでしょうか
Marshal.load()ってunserializeやってくれる関数ですよね
何回も"file"を読んで、同一の内容を、それぞれ違う変数・グローバル変数に入れてる?
それとも同一の内容じゃない?読むのは1回だけ?

OSやversionはすみませんわかりません
ツクール関係だとは思うのですが、ツクール関係独特のものなのかどうかもわからず
2019/06/04(火) 11:25:24.98ID:FCkMXnZ60
シリアライズされてるなら同名の変数にキチっと入れてくれるんじゃないの
401デフォルトの名無しさん (ワイーワ2 FFa2-dkMk)
垢版 |
2019/06/04(火) 11:29:47.34ID:uvNmGZETF
最適化されてない自動生成のコードだろ
2019/06/04(火) 12:20:57.18ID://1XsOfQ0
同じファイルを何回も読むのは、無駄

でも中略部分で、そのファイルに書き込んで、ファイルの内容を変えているなら、
再読み込みする意味があるけど

解説が付いていない、他人のソースコードを分析しない方がよい。
書いた人は、プログラムの仕様を知っているけど、
読む人は、仕様を知らないから、かなりの時間を損する

仕様(質問)からプログラム(答え)は書けるけど、
プログラム(答え)から仕様(質問)を把握するのは、極めて難しいから

つまり、なぜこういうプログラムになったのか、の「なぜ」を解明するのが極めて難しい

物理現象と同じ。
法則から現象は推測できるけど、現象から法則を導き出すのは、極めて難しい

>>396
VSCode でも、キーワードなどは色分けされる
2019/06/04(火) 12:49:27.49ID:oR7ssn0w0
ありがとうございます
特に中略部分でfile側が変化しているということはないようです

つまり、暗黙的に何か、Marshal.load()が左辺の変数名に拘束されるとか
Marshal.load()のfileオブジェクトからの読み取りがスタック的になってるとか
そういうのは無くて、普通に読んでいって大丈夫ということなんですね

>>402
おっしゃることもわかるんですけど
自分は作法が全然わからない時は特に、リファレンス見つつ他人のコードを見つつ勉強が効率良くて
2019/06/04(火) 17:36:22.57ID://1XsOfQ0
他人のクソコードを分析しても、時間の無駄。
普遍的な知識を得られない。
他人の仕様を推測するだけ

この3冊を読んで、プログラミングのお題スレの問題を解いた方が、力がつく。
Sinatra, Rails をやっても良いし

こういう勉強が普遍的で、他言語にも応用できるし、自分で考えるから成長できる

他人のソースコードを持ってきて、これはどんな事をやってるのですか? って質問する者が多いけど、
他人は仕様を知ってるけど、質問者は仕様を知らないから、極めて不利

一方、プログラミングのお題スレでは、仕様が与えられているだろ。
こういう場合には、他人のコードを見ても、意味がわかる。
だから勉強になる!

プログラミングとは、仕様からプログラムを作るもので、
プログラムから仕様を解明するものじゃないので、時間を失うだけ!
特に初心者にとっては、良い本などで、体系的に浅く学ぶのを勧める

推薦書
たのしいRuby 第6版、2019/3/19
改訂2版 Ruby逆引きハンドブック、2018/8/28

Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、間違いやすいポイントを解説
2019/06/04(火) 17:40:50.53ID:8o3tMmIE0
宣伝費、いくら貰えるんだろう?
2019/06/04(火) 18:16:47.29ID:aXH0FNpKM
いつものキチガイを相手にするつもりはないけど、質問者が誤解しないようにコメント
仕事のプログラミングだと基本的にソース眺めてる時間のほうが長いよ
ましてRubyも今や落ち目で便所掃除の仕事ばかり増え、全く新しいものを作る機会は減る一方だ
2019/06/04(火) 19:17:17.46ID:LGhp/e100
>>405
ないよ
そんなものがあったら3日でBANだ
2019/06/04(火) 20:11:05.76ID:P882eZbVM
>>403
参考にするのなら、別のソースにしたほうがエエんちゃう?
2019/06/04(火) 20:28:11.60ID:oR7ssn0w0
開発/運用側に立ってるとネットなんて
宣伝と、自作自演・サクラと、ユーザ奪い合い荒らしと
この3つばっかりって身にしみてるもんですし

>>408
たまたまMarshal関係で調べてて出くわしたもので
rubyがこういう(>>399)書き方・使い方がデフォな言語なのかどうかを
知りたかったというのがほとんどなので
2019/06/04(火) 21:00:20.80ID:7lg/KHrxa
>>409
開発運用側に立ってなんて言うからには他の言語での開発経験があるのだろうけど、それで>>399の理解というのは謎だなと思った
2019/06/04(火) 21:35:03.46ID://1XsOfQ0
だから、他人のクソコードを見ても、時間を損しただけだろ。
得るものなんてない

「Marshal.load」で検索すれば良いだけだから

こういうAPI の知識は、文書を見れば良いだけ。
他人がどう使っているか、考えたりするものじゃない

考えるのは、仕様からプログラムに翻訳する所。
こういう単なる知識は、検索するのが早い

それに、その他人が間違ってるかも知れない。
クソコードになるほど考えさせられて、時間を無駄使いさせられるw

だから、良い本を勧めるわけ。
良いコードはシンプルで、そのまま英語のように読める!

他人のコードから、仕様を推測するなんて、漏れはやらない。
出来たとしても所詮、推測だし、得るものはない

漏れも仕事で、多言語で、仕様書がないコードを解析してきたけど、得るものはほとんどない。
せいぜい、重箱の隅をつつくような知識ぐらいしか得られない。
その知識も他で役に立たない。転用できない

なぜかと言うと、その仕様は他人に与えられたものだから。
自分には、それとは異なる仕様が与えられるから!

普遍的な、多くの言語でも使えるような知識は、良い本から得られることが多い。
それを元に、プログラミングのお題スレの問題を解いた方が、力がつく!
2019/06/04(火) 21:39:18.98ID:jFAGFsyFa
そのMarshalのコードはかなり無駄だがファイルの内容が小さいから富豪的にやってるだけだと思う
実際はちゃんとセーブデータから該当するデータを読むという処理にすべき
2019/06/04(火) 21:59:55.03ID://1XsOfQ0
それに何回も同じファイルへの読み込むのは、
他のプロセスで、そのファイルを書き換えているからかも知れない

だから、ひょっとして書き変わっているかも知れないから、
出来るだけ新しいファイルを、読み込もうとしているのかも知れない

結局こういうように、仕様に対する推測ばかりするようになる

バグのほとんどは設計段階で生じる。
仕様がおかしかったら、必ずクソコードになってしまうw

これはもはや、プログラミングではない!
このように漏れらはいつも、設計・仕様の話ばかりしている。
顧客の要求定義も知らないのにさ!ww

漏れは、こういう仕事をさんざんやってきた。
その度に同僚同士で、クソコードを分析しても得られるものはないし、
時間の浪費だよねって、常々言い合ってきたw

お金をもらえるからやってるだけで、勉強にはならない。
勉強効率で言えば、1/100 とか

重箱の隅をつつくような断片的な知識は、覚えられられないし転用できない。
体系的に学ぶ必要がある
2019/06/04(火) 22:59:30.82ID:0PWK+f1w0
fileに複数のオブジェクトがdumpされてて
それを順番にloadしてるだけだぞ
2019/06/04(火) 23:41:11.09ID://1XsOfQ0
Marshal.load(port, proc = nil) -> object

port は、String か IO と書いてある

同じファイルを何回も読み込んでいるのではなく、
複数のオブジェクトがある場合、
一度にすべてを読み込まず、1つずつ順番に読み込んでるという事かな?

結局こういうように、どう作っているのか、他人の仕様の推測ばかりするようになる

このように漏れらはいつも、設計・仕様の話ばかりしている。
顧客の要求定義も知らないのにさ!ww

結局、他人がどう作っているのかなんて、わからない!
所詮どこまで行っても、推測に過ぎない!
2019/06/05(水) 01:28:30.54ID:UB83J14X0
仕様は>>399が(中略)したところに書いてあったぞ
2019/06/05(水) 01:30:04.71ID:Oo3xyqZm0
全部コピペしてくれ
気になって寝られない
2019/06/05(水) 02:34:30.81ID:UjRB/6p50
>>415
APIの仕様は文書で調べればいいだけと自分で>>411で書いているくせに、>>415では何で頓珍漢な当て推量をする流れなんだ?
いつもどこかで聞いてきたようなお題目を並べてはいるが、上っ面の字面だけを覚えているだけだろう。本人は実践できてないし理解もしていない。
419402 (ワッチョイ 6a2c-n0I8)
垢版 |
2019/06/05(水) 22:44:36.03ID:9aT8oaGi0
Marshal.load(port, proc = nil) -> object
port は、String か IO と書いてあって、仕様を知らないと、どちらかわからないから!

漏れの印象では、Marshal は、dup, clone などのdeep copy 関係のクラス

質問者のは、文字列化して外部プロセスに送ったり、
外部プロセスから文字列をもらって、オブジェクトを構築したりする用法かな?

JSON.parse, stringify みたいな感じなのかな?

「Ruby逆引きハンドブック」では、分散(distributed)Ruby, dRuby を使ってる。
外部ホスト・プロセスで動く、Rubyとの通信

dRubyでは、Marshalによる値渡しが基本みたい
2019/06/06(木) 12:10:33.65ID:UkK5klaO0
知らん人多いのか・・・びっくりだ

STDIN.getsなんかと同じで必要な文だけ読み取ってるだけだぞ
2019/06/06(木) 14:41:45.27ID:fpHkuk9sa
Marshalとか今時使うもんじゃない
2019/06/07(金) 01:21:32.05ID:UE5bXA580
今時は何使うん?
423デフォルトの名無しさん (アウアウエー Sa93-dZrz)
垢版 |
2019/06/07(金) 01:23:56.05ID:yhNlt0n8a
Rubyとか今時使うもんじゃない
2019/06/07(金) 01:42:47.01ID:UE5bXA580
Marshalでファイルに複数のオブジェクトを読み書きできるのか
てっきり1個のオブジェクトに固めてから使うのかと思った
リファレンスマニュアルにはそのあたり書いてないからね
2019/06/07(金) 10:49:24.42ID:Eixypjmyd
CSV出力処理でメモリが上がってしまうことが多く、対策しようとしているのですが良い方法はありますか?
少し調べて、pluckメソッドを使おうと思ったのですが、ソート順が想定通りにならなかったりしそうだったので、引き続き調べてみています。
2019/06/07(金) 11:24:15.29ID:3EE3ZH/10
出力するのにソート関係ないし
質問自体が初心者だなぁ(笑)
427デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
2019/06/07(金) 22:37:13.77ID:wtNNzOUb0
CSV.foreach で、ファイルを1行ずつ処理できる

このメソッドは、たぶん1行ずつ読み込んでは、
そのデータを捨ててと言うのを繰り返すのかな?

でも、ソートするなら、すべてのデータがメモリ内に存在しないといけないのでは?
だから、全行をメモリ内に読み込むことになる!
2019/06/08(土) 00:20:08.05ID:0P3wY/7I0
Python では、collections.Counter で、要素の出現回数を数えられるけど、
Ruby でも、簡単にできる方法ある?
普通には、Hash に入れながら、回数をインクリメントしていくけど

import collections

l = [ 'a', 'b', 'c', 'b', 'a' ]
c = collections.Counter( l )

print( c )
# Counter( { 'a': 2, 'b': 2, 'c': 1 } )
2019/06/08(土) 02:34:37.85ID:0P3wY/7I0
>>428
自己レス

配列に含まれている重複している数を数えるには?
https://teratail.com/questions/91229

l.each_with_object( Hash.new( 0 ) ){ |e, h| h[ e ] += 1 }

Python の、こういうのは無さそう。
c = collections.Counter( l )
2019/06/08(土) 03:19:18.26ID:s7niJl7f0
["a", "b", "c", "b"].tally
#=> {"a"=>1, "b"=>2, "c"=>1}
2019/06/08(土) 03:54:40.62ID:Vf2EEML20
>>425
csvを全部読み込んで処理しようとするとそうなるのは避けられない、何らかの工夫をするしかない
一行、数行ずつ処理し、終わるごとに配列、hashをクリアしていけばいいが、出来ない場合ね

csvを二回読み、一回目で必要なキーや情報だけ集めて一度csvをclose、
2回目にその情報を使って一行ずつ処理するなど
2019/06/08(土) 05:57:15.56ID:2hi7btAr0
>>425
MapReduceみたいに複数のマシンに分散させるとか
433デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
2019/06/09(日) 05:48:42.16ID:rn4C+nSw0
[[1, 2], [3, 4]] の外側の[ ] を外すには、どうすれば良いですか?
[1, 2], [3, 4] のようにしたい

flatten では、内側の[ ]が無くなる

ary = [[1, 2], [3, 4]]

p ary.flatten( 1 )
#=> [1, 2, 3, 4]
2019/06/09(日) 05:57:04.68ID:Zvq68IITM
>>433
あちこちでアホみたいなレスしてRubyの評判を落とすのをやめたら教えてあげるよ
2019/06/09(日) 13:07:01.08ID:owsNLjD/0
>>433
ary[0] or ary.first
2019/06/09(日) 13:42:07.09ID:Y6d7d5Fn0
>>433
意味がわからん。
437デフォルトの名無しさん (ワッチョイ eb7c-yvwO)
垢版 |
2019/06/09(日) 14:03:11.38ID:V8qyq4Ge0
*[[1, 2], [3, 4]]
438デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 14:33:40.10ID:FDYkpc7vd
オススメな本ある?
2019/06/09(日) 14:58:26.11ID:VJkUGCEU0
>>438
アマゾン/dp/B00ICKLC2A
440デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 20:52:05.62ID:FDYkpc7vd
>>439
Rubyで作る奇妙なプログラミング言語-〜ヘンな言語のつくりかた〜
これ?
2019/06/09(日) 21:04:35.15ID:VJkUGCEU0
>>440
そうです、結構おもしろかったですよ
442デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 21:45:31.88ID:FDYkpc7vd
>>441
Kindleバージョンしかないの?
2019/06/09(日) 21:51:40.23ID:VJkUGCEU0
>>442
書籍で出ていましたよ、私が持っているのは書籍の方
444デフォルトの名無しさん (ワッチョイ ebb6-fbqF)
垢版 |
2019/06/09(日) 21:55:27.58ID:W83DJxDE0
【実体験】ブログを1,000記事ほど書いたら、月300万くらい稼げた話
https://www.youtube.com/watch?v=GmVulh282ps&;t=604s
【報告】ブログで「月収1,000万」を達成できました【方法を解説する】
https://www.youtube.com/watch?v=pgjcuLp8wt0
年間ほど努力したら「年収3,000万」になったので、経験談を語る
https://www.youtube.com/watch?v=oV_SY-a1lMs
期間工ブログの収入は1500万円でした。【フリーランスの現実&底辺からの復活編】
https://www.youtube.com/watch?v=aijLjFLOuC4
年商1300万のプロブロガーの初心者時代から今までの軌跡
https://www.youtube.com/watch?v=UMiF4T2EO9o
【収益報告】実働月10hでも大金稼ぐ方法を解説【年収6,000万】
https://www.youtube.com/watch?v=o2ISWP-VZsw&;t=288s
無料ブログは稼げない。稼ぐならオススメはWordPress一択の理由
https://www.youtube.com/watch?v=o8oUe3JS-lg
445デフォルトの名無しさん (ワッチョイ 115f-Gzfa)
垢版 |
2019/06/09(日) 22:06:11.67ID:+p5uJAry0
>>443
2008年発売の書籍!
2019/06/09(日) 22:58:24.18ID:rn4C+nSw0
おすすめ本は、このスレの最初の方に、まとめてある!
2019/06/09(日) 23:32:37.79ID:+p5uJAry0
おお!ありがと!
448デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/13(木) 15:09:32.77ID:mYw2PK9v0
標準ライブラリに仮想環境を構築するモジュールがあれば教えてください
2019/06/14(金) 00:20:43.41ID:gXbRy3uY0
まさか、標準ライブラリには無いだろ

Chef, Vagrant とかだろ
2019/06/14(金) 11:13:41.68ID:d7JGEW920
物議を醸すパイプライン演算子
2019/06/14(金) 12:11:55.47ID:/GXcsjP70
sh「パイプライン演算子とはようやくシェルスクリプトに追いついてきたか?」
452デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/14(金) 17:43:29.05ID:2ICDzfK10
>>449
Pythonのvenvみたいなのはないんですか?
2019/06/14(金) 21:43:43.43ID:gXbRy3uY0
rbenv, nodenv などのanyenv だろ。
ただし、anyenv は、シェルスクリプトで書かれているらしいから、Linux/Mac でしか使えない

Windows では、仮想OS を使うか、
Windows10・WSL 上のLinux で動かしている、記事もある

Windows の場合、ユーザー環境変数PATH を手動で切り替える方法もある。
PowerShell(PS) で、そういうスクリプトを書くとか

ruby.exe のある場所。
C:\Ruby24-x64\bin
C:\Ruby25-x64\bin

PS で、環境変数PATHは、; で区切り。
$env:Path.split(";")

#=> C:\Ruby24-x64\bin
2019/06/14(金) 21:51:30.95ID:gXbRy3uY0
|> は、関数型言語、Elixir のパイプ演算子

メソッドチェーンを発展させて、オブジェクト指向から、関数型へ近づく。
マルチコアCPU の時代への適用
2019/06/14(金) 22:31:52.50ID:Guh3Kqz10
パイプ演算子ってドットのエイリアスなの
それパイプ演算子じゃない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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