プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/
るりまサーチ (リファレンス検索)
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
探検
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0485デフォルトの名無しさん (ワッチョイ 2352-ri7+)
2020/05/13(水) 08:28:32.53ID:sTsOjaTK0486デフォルトの名無しさん (ワッチョイ 2dad-Wcp/)
2020/05/13(水) 15:04:51.14ID:fGvC/Rms0 いやまあ本格的にゲーム作るなら
UnityとC#だろうけど
Rubyスレなんだし
とりあえずCUIの簡単なゲームから
練習するのも悪くないと思うよ
UnityとC#だろうけど
Rubyスレなんだし
とりあえずCUIの簡単なゲームから
練習するのも悪くないと思うよ
487デフォルトの名無しさん (ワッチョイ 3133-6wub)
2020/05/13(水) 15:26:01.68ID:v9SqqT/+0 なにをどうやりたいのかによるな。
型なしスクリプト言語はよしあしだから。
いわゆるゲームがしたいのなら、Rubyはほどほどに。
型なしスクリプト言語はよしあしだから。
いわゆるゲームがしたいのなら、Rubyはほどほどに。
488デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 15:41:23.13ID:oWyvBIrOa curses on ruby
489デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/13(水) 18:13:34.32ID:VSt/R8YQ0 Ruby は、小説ゲームなどのシナリオを、ゲームデータに変換するツールには使えるかも
Lua, Squirrel などを使うことも多いけど
Lua, Squirrel などを使うことも多いけど
490デフォルトの名無しさん (ワッチョイ 2dad-Wcp/)
2020/05/13(水) 19:10:38.74ID:fGvC/Rms0 RPGツクール(XP/VX)もあるし
一応ゲームライブラリもあるから
2DゲームならRubyも手軽で良いと思う
3DゲーならUnityほぼ一択だろうけど
一応ゲームライブラリもあるから
2DゲームならRubyも手軽で良いと思う
3DゲーならUnityほぼ一択だろうけど
491デフォルトの名無しさん (オッペケ Sr75-Wcp/)
2020/05/13(水) 19:27:44.16ID:VG+eVs4Ur 2Dゲーム用の未だに開発が続いているRubyのライブラリってあんの?
492デフォルトの名無しさん (ワッチョイ 6de6-imz8)
2020/05/13(水) 22:19:09.66ID:PF9y92K50 初心者です。
gem で sqlite3を入れようとしてもtkを入れようとしてもエラーになります。
署名は信頼されていません。って誰でしょう。
みなさん、どうしているの?
gem で sqlite3を入れようとしてもtkを入れようとしてもエラーになります。
署名は信頼されていません。って誰でしょう。
みなさん、どうしているの?
493デフォルトの名無しさん (ワッチョイ 9588-Y9FA)
2020/05/14(木) 01:10:11.58ID:xwBNTZK50 こういうのってコンソールのエラー画像貼った方が分かりやすい
494デフォルトの名無しさん (ワッチョイ 6de6-imz8)
2020/05/14(木) 06:31:55.66ID:/X2nuCW20 492です。
msysにgccを入れたらできました。
msysにgccを入れたらできました。
495デフォルトの名無しさん (ワッチョイ 3133-6wub)
2020/05/14(木) 10:13:36.06ID:CBkLiWJv0496デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/14(木) 13:41:01.55ID:FSEZeoAj0 漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
まず、パッケージ情報を最新にしてから、各パッケージをインストールする
sudo apt-get update
sudo apt install -y build-essential
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
sudo apt-get install -y libsqlite3-dev sqlite3
build-essential には、gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などの、
コンパイルツールが入っています
次に、openssl, readline, zlib のパッケージをインストールする。
さらに、sqlite3 関連のパッケージもインストールする
こういうパッケージが入っていて初めて、これらに対応する、Ruby gem が動く
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
まず、パッケージ情報を最新にしてから、各パッケージをインストールする
sudo apt-get update
sudo apt install -y build-essential
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
sudo apt-get install -y libsqlite3-dev sqlite3
build-essential には、gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などの、
コンパイルツールが入っています
次に、openssl, readline, zlib のパッケージをインストールする。
さらに、sqlite3 関連のパッケージもインストールする
こういうパッケージが入っていて初めて、これらに対応する、Ruby gem が動く
497デフォルトの名無しさん (ワッチョイ 1f42-uRPb)
2020/05/17(日) 06:00:27.29ID:ziL5Ecak0 CLIツールを作成するために、Bundlerをインストールしたいのですが
コマンドプロンプトに$ gem install bundler
と入力しEnterを押しても閉じるだけで何も状況が変わっていない気がします。
既存のCLIツール作成の記述画面を調べてみても
学んだputs,if,繰り返し処理のような文法は一切なく謎の文字列にしか見えず
用語の場合は調べれば対応できるかもしれませんが、用語ではなく何を示しているのかさえわかりません。
助けてください。
コマンドプロンプトに$ gem install bundler
と入力しEnterを押しても閉じるだけで何も状況が変わっていない気がします。
既存のCLIツール作成の記述画面を調べてみても
学んだputs,if,繰り返し処理のような文法は一切なく謎の文字列にしか見えず
用語の場合は調べれば対応できるかもしれませんが、用語ではなく何を示しているのかさえわかりません。
助けてください。
498デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/17(日) 06:12:55.96ID:C7MdgMNcr 謎の文字列ってなんだよ
499デフォルトの名無しさん (ワッチョイ 1f42-uRPb)
2020/05/17(日) 07:17:57.55ID:ziL5Ecak0 上からの一部になりますがこのような感じです
# bundlerをインストール
$ gem install bundler
# gemパッケージの雛形を作成
$ bundle gem str_convert_utils -b
Creating gem 'str_convert_utils'...
create str_convert_utils/Gemfile
create str_convert_utils/lib/str_convert_utils.rb
create str_convert_utils/lib/str_convert_utils/version.rb
# bundlerをインストール
$ gem install bundler
# gemパッケージの雛形を作成
$ bundle gem str_convert_utils -b
Creating gem 'str_convert_utils'...
create str_convert_utils/Gemfile
create str_convert_utils/lib/str_convert_utils.rb
create str_convert_utils/lib/str_convert_utils/version.rb
500デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/17(日) 07:26:20.95ID:C7MdgMNcr で何がしたいんだよ
501デフォルトの名無しさん (ワッチョイ 1f42-EoUu)
2020/05/17(日) 07:34:46.84ID:ziL5Ecak0 bundlerをインストールしてCLIツールを作成したいと思っているのですがbundlerのインストールのやり方がわかりません
502デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/17(日) 07:35:35.28ID:C7MdgMNcr もうインストールできるだろ
503デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/17(日) 07:36:49.43ID:C7MdgMNcr *もうインストールできてるでしょ
504デフォルトの名無しさん (ワッチョイ 1f42-EoUu)
2020/05/17(日) 08:04:53.42ID:ziL5Ecak0 rubyのインストールはコマンドプロンプトで行ったので同じようにインストールするものかと思いましたが
無事にbundlerをインストールすることが出来ているようなのでよかったです
ありがとうございます
無事にbundlerをインストールすることが出来ているようなのでよかったです
ありがとうございます
505デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/17(日) 09:35:16.01ID:C7MdgMNcr 質問する時は以下の点に留意すると回答が得られやすいぞ
・OS, Rubyなどのバージョンを書く
・何がしたいのか明確に書く
・どうなったのか明確に書く
・OS, Rubyなどのバージョンを書く
・何がしたいのか明確に書く
・どうなったのか明確に書く
506デフォルトの名無しさん (アウアウエー Sa93-gIXh)
2020/05/17(日) 13:48:03.48ID:2FMa8UuXa507デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/17(日) 16:36:18.35ID:VCTpJO2T0 基本、bundler だけは、gem install bundler で、グローバルに最新版をインストールする。
それ以外は、プロジェクトフォルダに、Gemfile を作って、
bundle install で、ローカル(プロジェクト毎)にインストールする
漏れの場合は、グローバルのbundler のバージョンを、1.17.2 から、2.1.4 へ更新した
bundler のバージョンを確認する
bundler -v
Bundler version 1.17.2
インストール済みのGem のバージョンを確認する
gem list bundler
bundler (default: 1.17.2)
レポジトリ内の最新バージョンを確認する
gem search -r bundler
bundler (2.1.4)
グローバルに、最新版をインストール・更新する
gem install bundler
bundler -v
Bundler version 2.1.4
gem list bundler
bundler (2.1.4, default: 1.17.2)
それ以外は、プロジェクトフォルダに、Gemfile を作って、
bundle install で、ローカル(プロジェクト毎)にインストールする
漏れの場合は、グローバルのbundler のバージョンを、1.17.2 から、2.1.4 へ更新した
bundler のバージョンを確認する
bundler -v
Bundler version 1.17.2
インストール済みのGem のバージョンを確認する
gem list bundler
bundler (default: 1.17.2)
レポジトリ内の最新バージョンを確認する
gem search -r bundler
bundler (2.1.4)
グローバルに、最新版をインストール・更新する
gem install bundler
bundler -v
Bundler version 2.1.4
gem list bundler
bundler (2.1.4, default: 1.17.2)
508デフォルトの名無しさん (ブーイモ MM5b-IA10)
2020/05/17(日) 16:56:56.37ID:FIuh62egM 何か開発するのに、向いてなさすぎるな。
509デフォルトの名無しさん (アウアウウー Sa2d-xlHZ)
2020/05/19(火) 00:48:41.11ID:X2Lrxylwa 1.0.step(3, 0.2) {|n| puts n}
の実行結果が以下の通りになった。
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4000000000000004
2.6
2.8
3.0
なんで2.4のとこが変になっちまうんでしょうか?
の実行結果が以下の通りになった。
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4000000000000004
2.6
2.8
3.0
なんで2.4のとこが変になっちまうんでしょうか?
510デフォルトの名無しさん (ワッチョイ 4b7d-fZtU)
2020/05/19(火) 01:00:09.89ID:9Ms3yTt70 >>509
10.step(30,2){|n| puts n.fdiv(10)}
10.step(30,2){|n| puts n.fdiv(10)}
511デフォルトの名無しさん (ワッチョイ 3133-6wub)
2020/05/19(火) 02:28:46.10ID:8rsHPaV60 >>509
「浮動小数点数 誤差」で検索!
「浮動小数点数 誤差」で検索!
512デフォルトの名無しさん (アウアウウー Sa2d-xlHZ)
2020/05/19(火) 03:20:42.99ID:X2Lrxylwa >>511
あ、これrailsのもんだあじゃないんだね!
あ、これrailsのもんだあじゃないんだね!
513デフォルトの名無しさん (オッペケ Sr63-Wcp/)
2020/05/19(火) 07:21:37.48ID:7tJzJz77r 誤差が嫌ならRational使え
1.step(3, 0.2r)
1.step(3, 0.2r)
514デフォルトの名無しさん (ワッチョイ 4e2c-g3Kq)
2020/05/20(水) 00:36:49.11ID:91fxSgSA0 浮動小数点は誤差があるので、お金の計算などでは使えない
例えば、0.5 は、2 ** -1 (乗)で、2進数で割り切れる。
0.25 も、2 ** -2 で、2進数で割り切れる。
よって、0.5 + 0.25 = 0.75 も、2進数で割り切れる
つまり、2進数で割り切れる数値の、組み合わせで表せる数値は割り切れる
一方、0.1 は、2進数で割り切れない。循環小数になる。
たぶん、0.2 も割り切れないのでは?
例えば、0.5 は、2 ** -1 (乗)で、2進数で割り切れる。
0.25 も、2 ** -2 で、2進数で割り切れる。
よって、0.5 + 0.25 = 0.75 も、2進数で割り切れる
つまり、2進数で割り切れる数値の、組み合わせで表せる数値は割り切れる
一方、0.1 は、2進数で割り切れない。循環小数になる。
たぶん、0.2 も割り切れないのでは?
515デフォルトの名無しさん (ワッチョイ a314-sMh3)
2020/05/20(水) 00:53:31.53ID:InboTxWs0 > お金の計算などでは使えない
使えばいいと思うけどなw
10円未満は四捨五入します。ってかけば十分だろうに
たった1円のために無駄な努力するんだぜ?
使えばいいと思うけどなw
10円未満は四捨五入します。ってかけば十分だろうに
たった1円のために無駄な努力するんだぜ?
516デフォルトの名無しさん (オッペケ Srbb-vdj3)
2020/05/20(水) 01:23:52.48ID:DUBnOkDWr 誤差のせいで四捨五入しても一意に定まらねえよ
517デフォルトの名無しさん (アウアウエー Sa52-crVl)
2020/05/20(水) 01:24:00.93ID:YPJhimCPa 銀行の理屈だと桁数が大きいので下の方のの桁が軽視できないんだと
ただ計算の仕方はものすごくいい加減
複利といっても商品によって桁の丸め方が違うらしい
歴史を重んじるらしい
文系らしい
ただ計算の仕方はものすごくいい加減
複利といっても商品によって桁の丸め方が違うらしい
歴史を重んじるらしい
文系らしい
518デフォルトの名無しさん (アウアウウー Sac7-YFMs)
2020/05/20(水) 01:31:03.16ID:6CLBLdpca Rubyは文系や中卒高卒が多いんだから文系ディスはやめてやれ
519デフォルトの名無しさん (ワッチョイ a314-sMh3)
2020/05/20(水) 03:12:41.37ID:InboTxWs0 >>517
文系「消費税は3%だ。端数?ちゃんと計算しろ。1円の誤差もゆるさねーぞ。」
文系「消費税は3%だ。端数?ちゃんと計算しろ。1円の誤差もゆるさねーぞ。」
520デフォルトの名無しさん (ワッチョイ 5b33-sQKC)
2020/05/20(水) 04:04:26.66ID:TeIKSVMR0 >>515
「四捨五入」とか言ってまうヤツは、金の処理に口を出すな。
「四捨五入」とか言ってまうヤツは、金の処理に口を出すな。
521デフォルトの名無しさん (オッペケ Srbb-vdj3)
2020/05/20(水) 04:18:01.52ID:DUBnOkDWr うちの環境だと
p ([0.003] * 500).reduce(:+) # => 1.4999999999999827
Array#sumだと最適化されるけどね
そもそも不確かさの精度を気にする環境でfloat使うのが間違い
p ([0.003] * 500).reduce(:+) # => 1.4999999999999827
Array#sumだと最適化されるけどね
そもそも不確かさの精度を気にする環境でfloat使うのが間違い
522デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/20(水) 10:24:15.42ID:Dfazl3Afa 二進数の浮動小数点数は十進数の(1/10)を表せなくて誤差の蓄積が出るって言うけど
これは二進数固有の問題ではない
十進数の浮動小数点数も十進数の(1/3)を表せなくて誤差の蓄積が出る
金の計算では条件次第だが
四捨五入することが許されてる場合は毎回四捨五入して良い
許されていなければ浮動小数点数じゃなくて分数を使え
これは二進数固有の問題ではない
十進数の浮動小数点数も十進数の(1/3)を表せなくて誤差の蓄積が出る
金の計算では条件次第だが
四捨五入することが許されてる場合は毎回四捨五入して良い
許されていなければ浮動小数点数じゃなくて分数を使え
523デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/20(水) 10:26:00.37ID:Dfazl3Afa524デフォルトの名無しさん (ワッチョイ a314-sMh3)
2020/05/20(水) 10:32:35.12ID:InboTxWs0 >>523
店は?儲かるの?損をするの?
店は?儲かるの?損をするの?
525デフォルトの名無しさん (ワッチョイ 3761-xVew)
2020/05/22(金) 15:30:11.57ID:TUWJypw20 >>518
それはどの言語であれ、普及率が高ければ高いほどそうなる。
それはどの言語であれ、普及率が高ければ高いほどそうなる。
526デフォルトの名無しさん (ワッチョイ 3761-xVew)
2020/05/22(金) 15:33:07.69ID:TUWJypw20 Pythonはアメリカでは教育に取り入れられている ---> 誰でもやっている
---> 上から下まで幅広くいる。
VB利用者が減ったのは、C# に移ったから ---> C#はVBプログラマでも使える証拠
でもあり、かつてのVBと同じレベルくらいの人がC#ラーにはいるということ。
---> 上から下まで幅広くいる。
VB利用者が減ったのは、C# に移ったから ---> C#はVBプログラマでも使える証拠
でもあり、かつてのVBと同じレベルくらいの人がC#ラーにはいるということ。
527デフォルトの名無しさん (ワッチョイ 7a98-r9h8)
2020/05/22(金) 16:23:18.04ID:PgzAS/Wx0 配列が大きくなるとHashのほうが速くなることを発見した
xは2万件くらいのデータ
a=[]
a.push(x)を繰り返すより
b=Hash.new
b[x]=0を繰り返して
として最後に a=b.keys
としたほうが速い
xは2万件くらいのデータ
a=[]
a.push(x)を繰り返すより
b=Hash.new
b[x]=0を繰り返して
として最後に a=b.keys
としたほうが速い
528デフォルトの名無しさん (ワッチョイ 5b33-sQKC)
2020/05/22(金) 21:01:06.45ID:AU9F7jR+0 Rubyのリストは、reserve()的なことはできないんだっけ?
できないならかわりに、a[20000]=nil とかしてから、a[i](i=0〜19999)に代入していったらいいんでは?
こっちのほうがはやそう。
できないならかわりに、a[20000]=nil とかしてから、a[i](i=0〜19999)に代入していったらいいんでは?
こっちのほうがはやそう。
529デフォルトの名無しさん (ワッチョイ f361-hf1i)
2020/05/23(土) 11:45:02.50ID:HsM7eDYs0 Array.new(size)
530デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2020/05/23(土) 12:30:03.81ID:KnmbZWpz0531デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
2020/05/23(土) 13:15:32.65ID:x0bVPHOi0 StringにはcapacityあるけどArrayのrubyインタフェースには見つからんな
C言語側ではrb_array_new2がそれっぽいが
まぁ、どうしてもそれっぽいことやりたいならArray#[]=でも拡張できるのでnew時にサイズ指定ですね。
あとはpushよりも<<の方が速かったり、
そもそも要素数が先に知る事ができるのならばArray.newにブロック渡したり
flat_map使ったり…
C言語側ではrb_array_new2がそれっぽいが
まぁ、どうしてもそれっぽいことやりたいならArray#[]=でも拡張できるのでnew時にサイズ指定ですね。
あとはpushよりも<<の方が速かったり、
そもそも要素数が先に知る事ができるのならばArray.newにブロック渡したり
flat_map使ったり…
532デフォルトの名無しさん (テテンテンテン MMb6-8pht)
2020/05/23(土) 14:30:56.75ID:rR3WkHU8M Rubyはユーザーコードの実行がとんでもなくゴミクソのように遅いから、
アルゴリズムの効率とか実はあまり関係なくて単にユーザーコードの命令数を削減することが重要だったりするね
アルゴリズムの効率とか実はあまり関係なくて単にユーザーコードの命令数を削減することが重要だったりするね
533デフォルトの名無しさん (ワッチョイ 5b33-sQKC)
2020/05/23(土) 16:20:51.70ID:eo29HWEv0534デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2020/05/23(土) 19:00:02.41ID:KnmbZWpz0535デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
2020/05/23(土) 20:20:01.68ID:x0bVPHOi0 >>534
# gem install benchmark_driver
require 'benchmark_driver'
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle
RUBY
x.report 'push without size', %{o = []; input.each{|x| o.push x }}
x.report '[]= with size (each_with_index)', %{o = Array.new(input.size); input.each_with_index{|x,ix| o[ix] = x }}
x.report '[]= with size (each)', %{o = Array.new(input.size); i=0; input.each{|x| o[i] = x;i+=1 }}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x] }}
end
# gem install benchmark_driver
require 'benchmark_driver'
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle
RUBY
x.report 'push without size', %{o = []; input.each{|x| o.push x }}
x.report '[]= with size (each_with_index)', %{o = Array.new(input.size); input.each_with_index{|x,ix| o[ix] = x }}
x.report '[]= with size (each)', %{o = Array.new(input.size); i=0; input.each{|x| o[i] = x;i+=1 }}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x] }}
end
536デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
2020/05/23(土) 20:21:25.63ID:x0bVPHOi0 prelude書き換えてる最中に送信してしまった
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
で
Comparison:
block with size: 12.0 i/s
[]= with size (each): 9.7 i/s - 1.23x slower
push without size: 8.9 i/s - 1.35x slower
[]= with size (each_with_index): 7.6 i/s - 1.58x slower
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
で
Comparison:
block with size: 12.0 i/s
[]= with size (each): 9.7 i/s - 1.23x slower
push without size: 8.9 i/s - 1.35x slower
[]= with size (each_with_index): 7.6 i/s - 1.58x slower
537デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2020/05/23(土) 21:52:02.03ID:KnmbZWpz0 >>535
そのwith sizeとwithout sizeはpushの差では?
require 'benchmark_driver'
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0)', %{o = Array.new(0); input.each{|x| o.push(x+1)}}
x.report 'Array.new(input.size)', %{o = Array.new(input.size); input.each{|x| o.push(x+1)}}
x.report 'init with []', %{o = []; input.each{|x| o.push(x+1)}}
x.report 'input.map', %{o = input.map{|x| x+1}}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x]+1 }}
end
pushを使うようにすれば
要素数分のinitializeが必要なArray.new(input.size)が
高い確率で一番遅くなる
そのwith sizeとwithout sizeはpushの差では?
require 'benchmark_driver'
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0)', %{o = Array.new(0); input.each{|x| o.push(x+1)}}
x.report 'Array.new(input.size)', %{o = Array.new(input.size); input.each{|x| o.push(x+1)}}
x.report 'init with []', %{o = []; input.each{|x| o.push(x+1)}}
x.report 'input.map', %{o = input.map{|x| x+1}}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x]+1 }}
end
pushを使うようにすれば
要素数分のinitializeが必要なArray.new(input.size)が
高い確率で一番遅くなる
538デフォルトの名無しさん (ワッチョイ 5b33-sQKC)
2020/05/23(土) 23:06:45.39ID:eo29HWEv0539デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
2020/05/24(日) 00:35:44.40ID:qyWs4RXc0 >>537
Array.new(3).push(1) #=> [nil,nil,nil,1]
Array.new(3).push(1) #=> [nil,nil,nil,1]
540デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2020/05/24(日) 01:01:16.27ID:uX1h9ngP0 >>539
あらら、そうだね
これで比べればいいのかな?
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0) + while + indexer', %{o = Array.new(0); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(size) + while + indexer', %{o = Array.new(input.size); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(0) + while + <<', %{o = Array.new(0); i=0; while(i<input.size); o << input[i]+1; i=i+1; end}
x.report 'Array.new(size) with block', %{o = Array.new(input.size){|x| input[x]+1 }}
end
あらら、そうだね
これで比べればいいのかな?
Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0) + while + indexer', %{o = Array.new(0); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(size) + while + indexer', %{o = Array.new(input.size); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(0) + while + <<', %{o = Array.new(0); i=0; while(i<input.size); o << input[i]+1; i=i+1; end}
x.report 'Array.new(size) with block', %{o = Array.new(input.size){|x| input[x]+1 }}
end
541デフォルトの名無しさん (ブーイモ MM26-jNIj)
2020/05/24(日) 20:16:17.42ID:sglBbUqvM 文字列でコードを渡さなきゃいけない仕様って超微妙だな
542デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)
2020/05/25(月) 16:59:48.64ID:gis+qwRr0 2020年6月30日
Ruby on Rails 製の、mstdn.jp・mastodon.cloud がサービス終了
女子プロレスラーの自殺により、
今後、イジメに対応するコストの上昇で、運営できなくなるとか
Ruby on Rails 製の、mstdn.jp・mastodon.cloud がサービス終了
女子プロレスラーの自殺により、
今後、イジメに対応するコストの上昇で、運営できなくなるとか
543デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)
2020/05/25(月) 21:19:55.59ID:gis+qwRr0544デフォルトの名無しさん (ワッチョイ 4d2c-LApo)
2020/06/03(水) 11:38:50.17ID:vinsTjyH0 Railsコースリリース!業界最安値で自走力が身につくワケを制作者が語る
ttps://www.youtube.com/watch?v=zY9SfGNt0pc
東京フリーランスのとだこうきが、Rails の3か月コースを作った!
9万円!
ttps://www.youtube.com/watch?v=zY9SfGNt0pc
東京フリーランスのとだこうきが、Rails の3か月コースを作った!
9万円!
545デフォルトの名無しさん (ワッチョイ 4abd-cExd)
2020/06/03(水) 17:11:50.10ID:NDbpdmqA0 Windows用に+DEVKITの方インストールしたけど1GB3万ファイル以上ってちょっとデカすぎないですか?
もうちょっとコンパクトにして欲しいんだが・・・
もうちょっとコンパクトにして欲しいんだが・・・
546デフォルトの名無しさん (ワッチョイ 1533-tHrU)
2020/06/03(水) 19:02:05.97ID:ymOaMaMw0 要するに、ビルドツールをインストールしたMSYS2やろ。
しゃあないというか、あたりまえ。
しゃあないというか、あたりまえ。
547デフォルトの名無しさん (ワッチョイ 4d2c-LApo)
2020/06/04(木) 22:02:40.64ID:hC0MsN2x0 漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL でアクセスしてる
Linux側には、build-essential などのコンパイルツールを入れて、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
VSCode の拡張機能、Remote WSL でアクセスしてる
Linux側には、build-essential などのコンパイルツールを入れて、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
548デフォルトの名無しさん (アウアウカー Sa05-3xqL)
2020/06/08(月) 12:52:32.89ID:I7gt15nza ビルドツール付きで1GBなら温情あるじゃないか。最近のVisual Studioだと10GB単位で食うぞ
549デフォルトの名無しさん (ワッチョイ 5d63-bYWF)
2020/06/08(月) 18:25:21.07ID:2z4WuMg00550デフォルトの名無しさん (オッペケ Sred-1bbd)
2020/06/08(月) 19:15:29.33ID:EB8W1SUXr visual studioコンパイラだけ欲しい
551デフォルトの名無しさん (ワッチョイ 1533-lvyY)
2020/06/08(月) 20:44:23.71ID:rHjOKxRG0552デフォルトの名無しさん (ワッチョイ 1514-14A0)
2020/06/08(月) 21:30:36.48ID:L2Cj2YHN0 macOS本体よりもでかい?Xcodeってなんなの?
https://egg.5ch.net/test/read.cgi/mac/1574170194/
なんか8GB?ぐらいダウンロードさせられるんですけど?
macOS本体もそれぐらいだっけ?
https://egg.5ch.net/test/read.cgi/mac/1574170194/
なんか8GB?ぐらいダウンロードさせられるんですけど?
macOS本体もそれぐらいだっけ?
553デフォルトの名無しさん (ワイーワ2 FFf2-B5RW)
2020/06/09(火) 09:45:37.77ID:sE3YfRh/F >>550
csc.exe と必要なライブラリだけ集めれば makefile で出来る
csc.exe と必要なライブラリだけ集めれば makefile で出来る
554デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2020/06/10(水) 23:42:30.32ID:mC7kOgCm0 "string”を ["s", "st", "str", "stri", "strin", "string”]にする場合の便利メソッドってある?
reduceじゃなくてaccumlator付きのmap的なやつ
reduceじゃなくてaccumlator付きのmap的なやつ
555デフォルトの名無しさん (ワッチョイ f314-qY8l)
2020/06/10(水) 23:50:47.62ID:o9Z/VPuJ0 誰がそんなメソッド使うんだよ
ユースケースが思いつかない
ユースケースが思いつかない
556デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2020/06/11(木) 00:38:25.72ID:tsfyzied0557デフォルトの名無しさん (ワッチョイ 632c-aH+M)
2020/06/11(木) 02:39:40.64ID:J++l+lJF0 ary = "abc".each_char.inject( [ ] ) do |ary, char|
if ary.length == 0
ary.push char
else
ary.push( ary.last + char )
end
end
p ary #=> ["a", "ab", "abc"]
if ary.length == 0
ary.push char
else
ary.push( ary.last + char )
end
end
p ary #=> ["a", "ab", "abc"]
558デフォルトの名無しさん (ワッチョイ 0f7d-QiYp)
2020/06/11(木) 03:14:46.66ID:cAVECZZb0559デフォルトの名無しさん (ワッチョイ 0333-cthd)
2020/06/11(木) 03:15:12.13ID:zOJFiWlV0 abbrevとは違うんか?
561デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2020/06/11(木) 13:02:15.68ID:tsfyzied0 >>559
ありがとう!まさに求めてたやつ
ありがとう!まさに求めてたやつ
562デフォルトの名無しさん (ワッチョイ 6f0e-jP3R)
2020/06/13(土) 21:43:36.97ID:v5FJ4AgU0 rbenvでインストールしてglobalに設定したのにruby -vでコマンドが見つかりませんって出る
rbenv経由でruby入れたときってrubyパス個別に通す必要あったっけ?
VMはubuntu2004使ってる
rbenv経由でruby入れたときってrubyパス個別に通す必要あったっけ?
VMはubuntu2004使ってる
563デフォルトの名無しさん (ワッチョイ 0333-cthd)
2020/06/13(土) 22:36:10.18ID:P6/rcyg20 >>562
まずはこのスレを検索して、それがダメだったらまたな?
まずはこのスレを検索して、それがダメだったらまたな?
564デフォルトの名無しさん (ワッチョイ 6f0e-jP3R)
2020/06/13(土) 23:18:46.70ID:v5FJ4AgU0565デフォルトの名無しさん (オッペケ Sr87-Qd01)
2020/06/13(土) 23:24:48.73ID:dJVRL38Lr 草
566496 (ワッチョイ 632c-aH+M)
2020/06/13(土) 23:34:58.27ID:V91HObFW0 >>496
に書いておいた
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
anyenv を推奨する。asdf もあるけど、
中を見たら、結局そのまま各言語の、*env を使っているものもあるみたい
に書いておいた
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
anyenv を推奨する。asdf もあるけど、
中を見たら、結局そのまま各言語の、*env を使っているものもあるみたい
567496 (ワッチョイ 632c-aH+M)
2020/06/13(土) 23:41:18.09ID:V91HObFW0 多言語の場合、anyenv, asdf を使わないと、各言語ごとにやらないといけないので面倒。
これらを使うと、rbenv, nodenv, pyenv, phpenv など、多言語を統一的に扱える
特に、Rails では、Node.js が必須だから、これらを使うべき
知らないけど、phpenv を使うと、すべてコピーされるから、
端末の起動が遅くなったとか、書いているサイトもある
これらを使うと、rbenv, nodenv, pyenv, phpenv など、多言語を統一的に扱える
特に、Rails では、Node.js が必須だから、これらを使うべき
知らないけど、phpenv を使うと、すべてコピーされるから、
端末の起動が遅くなったとか、書いているサイトもある
568デフォルトの名無しさん (ワッチョイ 0333-cthd)
2020/06/14(日) 02:30:30.04ID:6KYXSL5B0 >>564
初心者を免罪符にするな、クソクズw
初心者を免罪符にするな、クソクズw
569デフォルトの名無しさん (ワッチョイ 93ce-MJ0R)
2020/06/14(日) 03:56:56.29ID:n40LRnwv0 利用者の少ない言語で何やってんだか
570デフォルトの名無しさん (ワッチョイ 8319-F3Ee)
2020/06/17(水) 10:04:48.77ID:BoY15wgZ0 利用者少ないの?
571デフォルトの名無しさん (ワッチョイ b761-QR+y)
2020/06/18(木) 01:58:25.31ID:6O5cmfAx0 調査によるが、Javaは未だに物凄く利用者数の多い言語。
日本のWeb系だと、JS>Java>Ruby>PHP>・・・位だったかな。
全体だと、
JS>Python>Java>C++>C#>C>Ruby
位だったかな。
日本のWeb系だと、JS>Java>Ruby>PHP>・・・位だったかな。
全体だと、
JS>Python>Java>C++>C#>C>Ruby
位だったかな。
572デフォルトの名無しさん (ワッチョイ f60e-tbXy)
2020/06/18(木) 10:28:08.98ID:2MpifMwe0 PHPより上の位置付けでいいの?
573デフォルトの名無しさん (アウアウウー Sa47-Hc8+)
2020/06/18(木) 12:14:36.39ID:L/uXoOmUa javascript勉強した後だと、rubyの学習サクサク進むな
574デフォルトの名無しさん (ワッチョイ 573d-e/vk)
2020/06/19(金) 21:01:04.19ID:RsXwSQCp0 たのしいrubyって第6版まで出ていますが4版や5版の中古でも問題ないですか?
575デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2020/06/19(金) 21:02:29.60ID:2U294rNY0 買わなくても問題ないです
577デフォルトの名無しさん (オッペケ Sr3b-8ohN)
2020/06/19(金) 21:35:05.47ID:i/tLMeO3r >>576
お前は留数定理勉強しろや
お前は留数定理勉強しろや
578デフォルトの名無しさん (ワッチョイ cfa5-NJGG)
2020/06/25(木) 08:59:13.95ID:d9h6SFkx0 初心者でRUDYを習い始めたけど
この言語はなんかやりやすいねってまだ初歩の初歩だけど
この言語はなんかやりやすいねってまだ初歩の初歩だけど
579デフォルトの名無しさん (ワッチョイ 3f52-RSi0)
2020/06/25(木) 09:33:04.52ID:p+gLKGcc0 まずは名前を覚えてあげような
580デフォルトの名無しさん (ワッチョイ 3f79-FPvj)
2020/06/25(木) 10:19:03.69ID:2vWcdWuv0 >>578
まぁせいぜいがんばってくれたまえ
まぁせいぜいがんばってくれたまえ
581デフォルトの名無しさん (アウアウウー Sad3-Owb/)
2020/06/28(日) 15:54:16.53ID:mQb8yLJ0a progateのrailsのコンテンツで以下のようなコードがありました。
<%= form_tag("/posts/create") do %>
<textarea></textarea>
<input type="submit" value="投稿">
<% end %>
form_tagメソッドはなぜ<%= %>で囲わなければ行けないのでしょうか?
以下のように理解していますが。
「<% 〜 %>または<%= 〜 %>の違いは何でしょうか。
どちらも中に記述されたRubyコードが実行されるのですが、
<%= 〜 %>の方は実行された結果を評価し、文字列として出力します。」
<%= form_tag("/posts/create") do %>の行は何も文字列として出力していないと思いますが。
<%= form_tag("/posts/create") do %>
<textarea></textarea>
<input type="submit" value="投稿">
<% end %>
form_tagメソッドはなぜ<%= %>で囲わなければ行けないのでしょうか?
以下のように理解していますが。
「<% 〜 %>または<%= 〜 %>の違いは何でしょうか。
どちらも中に記述されたRubyコードが実行されるのですが、
<%= 〜 %>の方は実行された結果を評価し、文字列として出力します。」
<%= form_tag("/posts/create") do %>の行は何も文字列として出力していないと思いますが。
582デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
2020/06/28(日) 18:31:09.43ID:VdXbwnMJ0 お気に入り数を増やすAPIを作っているんですが、1つづつ増やすのは以下でできたんですが、
変数で一気に10個ずつとか増やしたい場合どう書いたらいいでしょうか
Photo.where('id = ?', params[:id]).update_all("favorite_count = favorite_count + 1")
変数で一気に10個ずつとか増やしたい場合どう書いたらいいでしょうか
Photo.where('id = ?', params[:id]).update_all("favorite_count = favorite_count + 1")
583デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)
2020/06/28(日) 18:56:04.59ID:0dkV5Fxh0584デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
2020/06/28(日) 18:59:25.47ID:VdXbwnMJ0 >> 583
わからないならレスしないでください。うざいだけです
わからないならレスしないでください。うざいだけです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- でもこんなに高市がやらかしても中東みたいにミサイル飛んできたりしないから東アジアってクッソ平和だよなwwwwwwwwwwwwwwww [271912485]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- ほかほかご飯にかけるとうまいもの一覧
- 🏡
- 「これが完成された醜い姿である>>1」←これなに?
