1 :
デフォルトの名無しさん
2016/10/02(日) 16:50:38.72 ID:kFeo4TbM
2 :
デフォルトの名無しさん
2016/10/02(日) 16:51:40.26 ID:kFeo4TbM
たのしいRuby 第5版、2016 Effective Ruby、2015 メタプログラミング Ruby 第2版、2015 Rubyのしくみ、2014 改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015 リファクタリング:Rubyエディション、2010
3 :
デフォルトの名無しさん
2016/10/02(日) 18:17:48.09 ID:mO5jHYyT
プログラミングElixir、2016 Ruby界隈から、名著が出た。 著者は「プログラミングRuby」のDave Thomas。 関数型言語Elixirは、Ruby + Rails + ErlangVM で、並行処理が得意 Selenium実践入門 ―― 自動化による継続的なブラウザテスト、2016 Seleniumデザインパターン&ベストプラクティス、2015 OSSのブラウザ自動テストツール、Selenium WebDriver を使って、 Rubyでテストを書いた本 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問、増井 敏克、2015 CodeIQに掲載された問題を、Ruby, JSなどで解説 「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」の受賞作
4 :
デフォルトの名無しさん
2016/10/02(日) 18:43:05.77 ID:QvMQ+uX0
5 :
デフォルトの名無しさん
2016/10/02(日) 22:05:08.76 ID:mO5jHYyT
Linux API を、Windows API に変換するので、Ubuntu64 のバイナリがそのまま動く、 Windows Subsystem for Linux (WSL) で、Ruby, Rails をやっている人いる? 調子はどう? apt-get で、パッケージもインストールできる 日本語も使える端末、ConEmu。 GUI表示用のXサーバー、Xming X Server for Windows
6 :
デフォルトの名無しさん
2016/10/03(月) 07:31:26.25 ID:Sy28Ke7B
今試してるとこ Win対応はRubyのお荷物になってるから、 これを機にWin関連のコードがRuby本体やGemsから一掃されてくれるといいな
7 :
デフォルトの名無しさん
2016/10/03(月) 10:44:03.35 ID:GNQlIOXR
Rubyはもうオワコン
8 :
デフォルトの名無しさん
2016/10/03(月) 17:50:44.12 ID:BQDt10lP
rubyのopengl関連のラブラリがどうなってるのか分かり辛いから、 自分で調べたんだけど下のであってる? ・今はlarskanis/openglとvaiorabbit/ruby-openglがある ・larskanis/openglのほうは(vaiorabbit/ruby-openglのドキュメント読むと)opengl2とかよばれている ・opengl2表記から初代opengl(既に開発停止、サイトもなくなっている)が存在する
9 :
デフォルトの名無しさん
2016/10/03(月) 17:52:09.82 ID:BQDt10lP
足りていない箇所があったら教えて
10 :
デフォルトの名無しさん
2016/10/04(火) 20:13:20.14 ID:BihL0/mM
Cで書かれたメソッドにポインターを渡す場合どうしたらいいのかわからない ruby側で「メモリ確保してポインター渡す」にはどうすればいいの?
11 :
デフォルトの名無しさん
2016/10/04(火) 22:52:38.60 ID:1BCIDfGo
WSLだとRails簡単に動いた 少なくともWin対応完全終了の口実としては十分なレベルだなこれ
12 :
デフォルトの名無しさん
2016/10/05(水) 06:20:29.41 ID:JVWzXY3A
mswin32だろうがmingw32だろうが需要があるから どんなに嫌ってる人がいようと続いていく
13 :
デフォルトの名無しさん
2016/10/05(水) 14:43:41.37 ID:e2s2BqVL
14 :
デフォルトの名無しさん
2016/10/06(木) 01:25:08.92 ID:b/FSG7/S
環境
win7-64bit
ruby-2.2.4(32bit)とruby-2.3.1(32bit)をrbenvを使って二つインストールしてる
数日前から2.3.1の方でgemのアップデートやインストールをしようとすると
Updating installed gems
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certif
icate verify failed (
https://api.rubygems.org/specs.4.8.gz) こんなエラーがでて、上手くいかない
2.2.4の方に切り替えるとアップデートやインストールが上手くいく
正直どこ弄れば良いかさっぱりだわ
15 :
デフォルトの名無しさん
2016/10/06(木) 01:28:43.41 ID:EykuvLuN
gemのバージョンは?
16 :
デフォルトの名無しさん
2016/10/06(木) 01:37:19.84 ID:b/FSG7/S
>>15 2.2.4の方が2.6.7、2.3.1の方が2.5.1でした
古いのが原因かと思ってgem update --systemを試しましたが同じくSSLのエラーを吐いてダメでした……
17 :
デフォルトの名無しさん
2016/10/06(木) 12:40:09.87 ID:4kR5N43K
どうせ隔離して使うんならVagrantでいいじゃん Windowsで無理にrbenv使う意味がわからん
18 :
デフォルトの名無しさん
2016/10/06(木) 16:10:34.56 ID:EykuvLuN
>>16 Ruby 2.2.4 の方の gem を 2.5.1 にして比較してみては?
19 :
デフォルトの名無しさん
2016/10/06(木) 18:27:59.15 ID:TUUHw8QE
20 :
デフォルトの名無しさん
2016/10/06(木) 23:45:09.75 ID:80e57pGo
質問お願いします。 cronでrubyを動かすと、下記エラーが出てしまうのですが、 どう書けば良いのでしょうか? また、なぜcronだとエラーしてしまうのでしょうか? /hoge/nokogiri.rb: line 4: syntax error near unexpected token `(' /hoge/nokogiri.rb: line 4: `ENV['SSL_CERT_FILE']=File.expand_path(File.dirname(__FILE__)+
21 :
デフォルトの名無しさん
2016/10/07(金) 01:04:31.76 ID:yL88npXy
cron で皆がエラーになるのは、一般ユーザーよりも、環境変数が少ないから
22 :
デフォルトの名無しさん
2016/10/07(金) 18:41:40.46 ID:CUba1Zl4
23 :
デフォルトの名無しさん
2016/10/09(日) 16:23:29.55 ID:+q97XIgi
rubyってインストールできたらあとはコマンド入力すればいいの? nokogiriっての使いたいんだけど gem install nokogiriってうっても変なエラーでるだけなんだけど
24 :
デフォルトの名無しさん
2016/10/09(日) 16:29:26.13 ID:zS2VLXB8
絶望的に向いてない人はいる 人生諦めが肝心
25 :
デフォルトの名無しさん
2016/10/09(日) 16:37:40.41 ID:+q97XIgi
自己解決したわ 俺は向いてるみたいだ
26 :
デフォルトの名無しさん
2016/10/09(日) 17:08:11.44 ID:+q97XIgi
requireが通らないんだが?は?
27 :
デフォルトの名無しさん
2016/10/09(日) 17:09:47.41 ID:+q97XIgi
コードの理解はそんな難しくなさそうなのに手前がめんどくさいんじゃ
28 :
デフォルトの名無しさん
2016/10/09(日) 17:29:16.41 ID:ztakSrvW
gem search nokogiri と打っても*** REMOTE GEMS *** だけしか出てこないんですけど みなさん同じ症状ですか? それとも私だけでしょうか?
29 :
デフォルトの名無しさん
2016/10/09(日) 18:12:12.28 ID:okPyT/Vt
少し上のレスを読む and 自分の環境を書く くらいはしましょうね
$ gem install rubygems-update --source
http://rubygems.org/ $ update_rubygems
$ gem search -r nokogiri
30 :
デフォルトの名無しさん
2016/10/11(火) 10:02:56.75 ID:/UUIzz58
rubyで深層学習するのと他の言語、例えばCやらpythonで深層学習するのと、どこが違うの? rubyでも同じようなライブラリ作成したら、同じになる? それとも言語仕様のそもそもの違いで無理なの? rubyならなんでも出来そう、かつ楽な書き方が出来そうな気がするんだけど
31 :
デフォルトの名無しさん
2016/10/11(火) 12:03:30.19 ID:aUckxkie
Rubyにはnumpyやscipyやmatplotlibみたいな科学技術計算のためのライブラリが無いから極めて厳しい
32 :
デフォルトの名無しさん
2016/10/11(火) 22:02:35.19 ID:gtjckSki
つまり誰かがそのライブラリに相当するものを作ってくれれば・・・
33 :
デフォルトの名無しさん
2016/10/12(水) 13:13:10.27 ID:2jtU3Zls
深層学習用に、既存のCライブラリのrubyバインディングを書くのと、ruby用ライブラリを新規で書くの どちらもそんなに違い出なさそうに見えるけど実際はどうなんだろ やっぱりそれぞれ書くのが難しい部分とかある?
34 :
デフォルトの名無しさん
2016/10/12(水) 15:25:05.17 ID:lA7OeQ/m
コードなんて実際簡単なんだろうな 金になる商売はむずかしいむずかしい言われるもんなんだろ
35 :
デフォルトの名無しさん
2016/10/12(水) 17:14:15.29 ID:Kt1Sq3SL
fruits=["apple", "orange", "grape", "tomato", "doria", "peach"] apple_price=[2, 6, 7, 13, 6, 20] puts "#{fruits[0]}_price"[4] 上のコードでapple_price[4]の要素6を取り出したいのですが、"e"が表示されます。これは"apple_price"という文字列の 5番目を見ている、というのは理解できます。6を表示させるにはどうすればよいのでしょうか。よろしくお願いします。
36 :
デフォルトの名無しさん
2016/10/12(水) 17:41:20.38 ID:m4XsbzZB
イマイチ何を目的としているのかわからんけど、 6を表示するだけならputs eval("#{fruits[0]}_price")[4]
37 :
デフォルトの名無しさん
2016/10/12(水) 19:02:48.90 ID:Kt1Sq3SL
おお、すごい!ちゃんと6が表示されました。ありがとうございます。 ちょっと、今ググってみると、「「eval」は、Rubyの文字列を評価するメソッドです。」とあり、 評価するという意味が分かりませんが、とにかく文字列をつなげて“配列名”として扱える ことができるのはわかりました。 なんでこんな妙なこと?をしているのかというと、配列名がすさまじく増えてきた上に、長くなってきて 見苦しくなってきたので、配列名の単語リスト配列を作成してその配列から番号で拾ってきてつなげれば 短くなって済むじゃんという動機でした。ところが、それらの文字がうまくつながらないので困っていた次第です。 とにかく、ありがとうございました。もうちょっと調べてみます。
38 :
デフォルトの名無しさん
2016/10/12(水) 19:15:43.53 ID:5MBS+YlH
Hashでやれば
39 :
デフォルトの名無しさん
2016/10/12(水) 19:16:58.95 ID:AoMg70NU
そういう場合はHash使おう
40 :
デフォルトの名無しさん
2016/10/12(水) 20:26:38.78 ID:Kt1Sq3SL
いや、このevalってすごいですね。つまり、"#{fruits[0]}_price"はこの時点では配列名でもなんでもなく ただの文字列だけど、eval("#{fruits[0]}_price")することによって、配列名としての役割をもたせられた? というわけですね。要するに二次嫁を実際に動かすメソッドというわけですよね。 なんてすごいんだ。これからはこれを使いまくろう。素晴らしいものを教えていただきありがとうございました。 ハッシュは書くのがめんどくさいので、これにします。でも情報ありがとうございました。
41 :
デフォルトの名無しさん
2016/10/12(水) 20:38:17.90 ID:9oDwxE2X
こういう奴がスクリプトインジェクション脆弱性を作り込むんだよな
42 :
デフォルトの名無しさん
2016/10/12(水) 21:18:02.32 ID:golIGFQa
まあ「すごいけどなんかキモい」と感じて欲しいところではある
43 :
デフォルトの名無しさん
2016/10/12(水) 22:38:29.15 ID:nShtFhcR
そんな事でevalなよ
44 :
デフォルトの名無しさん
2016/10/13(木) 09:04:29.36 ID:1bl1DIi2
>>40 hashは配列を変換しても作れるし、多次元配列を使ったとしても
evalとか使うよりもよほど簡潔に書けると思うが。
45 :
デフォルトの名無しさん
2016/10/13(木) 11:10:37.62 ID:a7epO2oP
46 :
デフォルトの名無しさん
2016/10/13(木) 18:51:51.44 ID:bdwv69IA
>>44 わかりました、もうちょっと勉強します。
あとevalについて調べてみましたが、なんだか多用するようなメソッドじゃないみたいです。ただ、こんな
強力なメソッドがあることを知ることができたのは大きな収穫でした。
47 :
デフォルトの名無しさん
2016/10/13(木) 19:08:12.98 ID:Xwk5OgLP
popenの方が強力
48 :
デフォルトの名無しさん
2016/10/14(金) 01:49:18.02 ID:lTvGl+LI
twitterとrubyで質問です。 rubyで自分のフォロワー一覧、あと自分のフォロワーがそれぞれフォローしてる人を一覧で得たいんですが、どうコードを書けばいいでしょうか? rubyのバージョンは2.3.1です。 client.updateを使ってツイートを投稿することはできました。
49 :
デフォルトの名無しさん
2016/10/14(金) 07:05:19.57 ID:xv7XrH2t
Twitter APIとRubyクライアントのドキュメントを読む 英語読む気ないなら諦めましょう
50 :
デフォルトの名無しさん
2016/10/14(金) 14:11:08.06 ID:4bSlGLeL
51 :
デフォルトの名無しさん
2016/10/16(日) 20:26:06.98 ID:/verdR3z
ちょっと思い立ったんだけど、require や import や 継承した ライブラリ、モジュール、クラスやメソッドのソースコードを 表示したり、そのソースのファイルパスを返すメソッドがあったら 便利じゃない? そういうメソッドあるのかな。
52 :
デフォルトの名無しさん
2016/10/16(日) 20:45:49.85 ID:bFWPoPH4
pry使え
53 :
デフォルトの名無しさん
2016/10/16(日) 22:04:09.40 ID:B0JyF1+C
たぶん、メタプログラミング・リフレクションに、あるだろ
54 :
デフォルトの名無しさん
2016/10/17(月) 04:13:11.14 ID:G5XuU76K
https://www.kmc.gr.jp/ ~ohai/rubysdl_doc.html
ここを参考にして、
SDL::Event#mouse_x
でマウスのx座標を取得しようとしたら#より右側がコメントアウト扱いになってしまう
解決策をおしえてください
55 :
デフォルトの名無しさん
2016/10/17(月) 05:37:21.81 ID:xsBX/OJB
>>54 それが出てくるってことは重症だ
君の使ってるRubyの参考書のRubyのインスタンスメソッドの説明はどうなってる
56 :
デフォルトの名無しさん
2016/10/17(月) 06:27:05.93 ID:9oMVPCEa
# から行末までは、Rubyではコメントになる # を、.(ドット)に変えれば、どうなる?
57 :
デフォルトの名無しさん
2016/10/17(月) 09:51:34.36 ID:PK8gee68
58 :
デフォルトの名無しさん
2016/10/17(月) 12:43:13.80 ID:/xEkgA1M
unlessとか気持ち悪いんですがこれはよく使うものなんですか?
59 :
デフォルトの名無しさん
2016/10/17(月) 12:47:09.09 ID:O9P4o+SC
うん とっても
60 :
デフォルトの名無しさん
2016/10/17(月) 12:56:06.33 ID:wcVEram7
いまいち読み下しにくいので後置でのみ使う人もいる 流れによっては if + 否定的条件 であえて書くときもある なんでもかんでも機械的にunlessに置き換えれば好ましいというわけでもない
61 :
デフォルトの名無しさん
2016/10/17(月) 13:10:36.28 ID:/xEkgA1M
とりあえずunless覚えておきます というかrailsのためだけにrubyを覚えようと思っているぐらいなので極めるつもりはないですけど
62 :
デフォルトの名無しさん
2016/10/17(月) 13:25:44.82 ID:8eStTtOD
unlessは必ず副作用があるから、関数型っぽいスタイルで作るならほとんど使う機会は無いはず
63 :
デフォルトの名無しさん
2016/10/17(月) 14:17:13.45 ID:4xjyqR1P
指定したディレクトリごとにgemのライブラリを分けてインストールする方法ありませんか? bundlerだとプロジェクトごと管理されてしまうので使いまわせませんよね
64 :
デフォルトの名無しさん
2016/10/19(水) 17:08:04.64 ID:6/Oyo1yl
ruby 2.2.3
すいか→からす のようにしりとりの正誤を
判定するプログラムを作りたい。
実行する時に「ruby 〜.rb すいか からす」
のように2つの言葉を入れて実行させると
エラーが出てしまう。
str1=すいか、str2=からすと指定すれば
上手くいくのだけど…
何が間違っているのか教えてください
def judge(str1,str2)
if str1.reverse[0] == str2[0] then
return true
else
return false
end
end
##############
str1 = ARGV[0]
str2 = ARGV[1]
p judge(str1,str2)
65 :
デフォルトの名無しさん
2016/10/19(水) 17:36:03.73 ID:yr0BTWsi
俺の環境ではエラーにならないので原因はスクリプトではないかと。 引数が1つだとうまくいくのか? エラーが出る場合は環境とどんなエラーが出たかも書かないと。
66 :
デフォルトの名無しさん
2016/10/19(水) 17:42:23.59 ID:6/Oyo1yl
1つだと上手くいきます if文のところに undefine method '[]' for nilというエラーが。
67 :
デフォルトの名無しさん
2016/10/19(水) 17:45:20.12 ID:QoKZwwi3
エラーは訳すな約すな 標準入力のエンコーディングが変なことになってる環境でreverseが文字単位にならないと推測 rubyのバージョンと実行環境
68 :
デフォルトの名無しさん
2016/10/19(水) 17:56:18.75 ID:yr0BTWsi
69 :
デフォルトの名無しさん
2016/10/19(水) 18:19:16.64 ID:4/E1zdGS
>>64 str1.reverse[0] は str1[-1] で十分でしょ。
def judge(str1,str2); str1[-1]==str2[0]; end
>str1=すいか、str2=からすと指定すれば
これがエラーにならないのが、むしろ謎。
70 :
デフォルトの名無しさん
2016/10/19(水) 18:31:10.49 ID:6gjRUSSv
ruby reverse.rb からす すいか ↓ reverse.rb:2:in 'judge' : undefine method '[]' for nil : NilClass (NoMethodError) from reverse.rb:13:in '<main>'というエラー ARGVのみにしてもエラーが出る
71 :
デフォルトの名無しさん
2016/10/19(水) 19:12:58.53 ID:r8TZ1Dhr
68の言うとおり p ARGV を実行してみたら? コマンドライン行のコピーと結果の貼り付けも忘れずに
72 :
デフォルトの名無しさん
2016/10/19(水) 19:19:47.78 ID:I4oLsIwo
>>64 def judge(str1,str2)
str1.reverse[0] == str2[0]
end
def judge2(str1,str2)
str1.chars[-1] == str2.chars[0]
end
def judge3(str1,str2)
str1.chomp.split(//)[-1] == str2.chomp.split(//)[0]
end
def f(a, b)
[a, b, judge(a, b), judge2(a, b), judge3(a, b)]
end
p f("すいか", "からす")
p f(ARGV[0], ARGV[1]) if 2 <= ARGV.size
p ARGV
↑で実行してみた結果↓
["すいか", "からす", true, true, true]
["からす", "すいか", true, true, true]
["からす", "すいか"]
参考までに…
ちなみにruby 2.0.0
73 :
デフォルトの名無しさん
2016/10/19(水) 19:36:52.07 ID:o0vkn/jY
からすとすいかの間の空白が全角とか?
74 :
デフォルトの名無しさん
2016/10/19(水) 22:29:42.17 ID:ezmv6hmC
require "jcode" はしてある?
75 :
デフォルトの名無しさん
2016/10/19(水) 22:46:03.74 ID:3bJ4nK02
まあ全角空白でないのならレンタルサーバでRuby1.8とか中古本のCD-ROMでRuby1.9 for Windowsとかそういう可能性も視野に入るな
76 :
デフォルトの名無しさん
2016/10/20(木) 03:15:22.25 ID:/8DsWqlk
77 :
デフォルトの名無しさん
2016/10/20(木) 09:48:49.92 ID:3pYX1TsE
>>70 p ARGV以外はコメントアウトしろよ。
78 :
デフォルトの名無しさん
2016/10/22(土) 05:56:30.44 ID:eX6AWpPB
Ruby 2.2.5p319 + dxruby + gvimで、gvimからコマンドプロンプトを通じて実行すると画像Image.load(のあとが文字化けして画像が読めません。 コマンドプロンプトをデスクトップから立ち上げると問題なく起動します。 何が原因でしょうか?
79 :
デフォルトの名無しさん
2016/10/22(土) 08:36:01.81 ID:eX6AWpPB
参照画像を絶対パスにしたら表示できましたが、全画像を絶対パスへと補完できるとは言え気持ち悪いです。 相対パスで書くと実行時に文字化けした状態で絶対パスになってるので文字コードの違いによるものでしょうか?
80 :
デフォルトの名無しさん
2016/10/22(土) 10:55:27.68 ID:O48rD9qT
/hoge(ASCII)/fuga(EUC)/hage(UTF-8)/moge(SJIS)/ みたいなパス作ってるとかね Ruby ならあり得るわ
81 :
デフォルトの名無しさん
2016/10/22(土) 10:55:50.24 ID:jUJZAwsX
文字化け?
82 :
デフォルトの名無しさん
2016/10/22(土) 19:50:27.76 ID:8CeWG7Cb
パスの各コンポーネントをそれぞれcapitalizeしたいと思ったら path.split('/').map(&:capitalize).join('/') みたいにするしかないですか? ありがちな処理なのでもっとあっさり書く方法があったりしないかなって
83 :
デフォルトの名無しさん
2016/10/22(土) 20:00:43.51 ID:jUJZAwsX
ありがちなの?ないないでしょ
84 :
デフォルトの名無しさん
2016/10/22(土) 20:10:25.86 ID:8CeWG7Cb
英語圏の人ならわりとやるんじゃないかなあと思ったんですが そうでもないのかな
85 :
デフォルトの名無しさん
2016/10/23(日) 01:50:27.34 ID:VGMahutR
>>80 自己解決です
Cygwin + Vimでutf-8に設定したら幸せになれました
86 :
デフォルトの名無しさん
2016/10/23(日) 21:51:04.30 ID:ePWxsG1g
でかいファイルをシーケンシャルで読む時にIO#readでちまちま読むとえらい遅いけど 別スレッドである程度まとまったブロックとして読み込んでバッファリングするようにすると速くなる でもこのコードを書くのはかなり面倒・・・非同期な読み書きを簡単に実現してくれる ライブラリとかないですか?
87 :
デフォルトの名無しさん
2016/10/24(月) 06:15:31.40 ID:o4tpRTmI
dxrubyでスプライトを敵という配列、味方という配列にそれぞれプッシュして入れてます。 敵との距離が一定以下になれば味方が最寄りの敵を攻撃するようにしたいです。どうすれば良いですか?
88 :
デフォルトの名無しさん
2016/10/24(月) 08:43:55.39 ID:b4iOClrl
>>87 一対の味方の敵の位置ベクトルをそれぞれa, bとすると、aとbの距離は|a-b|。
味方と敵はそれぞれ複数いるので、一番素直な計算なら(味方の総数)×(敵の総数)通りのペア全てに対して上式で距離を求め、距離が閾値以下かどうかを判定してやればいい。
疑似コードで書けばこんな感じ。
for a in 味方の位置ベクトルの配列
for b in 敵の位置ベクトルの配列
if |a-b| < 閾値 then aがbを攻撃する
89 :
デフォルトの名無しさん
2016/10/24(月) 09:04:08.10 ID:8wVQUY50
ありがとうございます。 あれから思いつきで攻撃判定用にスプライトに円を書いてSprite.check(味方,敵)をやってたのですが、こちらのほうが軽くていいですね。 こちらに書き換えてみたらうまくいきました。
90 :
デフォルトの名無しさん
2016/10/26(水) 21:15:33.13 ID:hpPrYAZA
str =
91 :
デフォルトの名無しさん
2016/10/26(水) 21:18:43.85 ID:hpPrYAZA
str = " I am a boy " puts str.split(" ") とすると I am a boy と出力されます。 puts str.sizeとすると 全ての文字数を数えてしまいます。 一単語ずつ文字数を数えて出力するには どうしたらいいでしょうか。
92 :
デフォルトの名無しさん
2016/10/26(水) 21:25:19.00 ID:Vi7enIW1
>>91 puts str.split(" ").size
93 :
デフォルトの名無しさん
2016/10/26(水) 21:31:21.64 ID:3haCvHGL
puts str.split(" ").map(&:size) puts str.split(" ").map {|x| x.size }
94 :
92
2016/10/26(水) 21:33:58.54 ID:Vi7enIW1
あ、単語の数じゃないのね失礼w
95 :
デフォルトの名無しさん
2016/10/26(水) 21:44:17.35 ID:hpPrYAZA
できました。ありがとうございます。
96 :
デフォルトの名無しさん
2016/10/27(木) 00:41:35.12 ID:WMnZ+0Yu
>>90-91 2chのバグだろ
書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" を、\" とエスケープすれば、どうだろう?
97 :
デフォルトの名無しさん
2016/10/27(木) 10:32:10.58 ID:2MnkRHxj
DXrubyで、配列に画像、名前、数値と言った具合に値を格納したいので構造体を使ってます。 しかし、arr[n].name で名前は表示できるのですが、画像が描画できません。どうしたら良いでしょうか? require 'dxruby' arr = [] Units = Struct.new(:fig, :name, :lv) for i in 0..511 img = Image.new(10, 10, color = [i * 3 % 256, i * 5 % 256, i * 7 % 256]) spr = Sprite.new(i % 100 * 10, i / 100 * 10, img) arr[i] = Units.new(spr, "ice", i * 1.2) end Window.loop do Sprite.draw(arr) (arr[4].fig).draw break if Input.key_down?(K_RETURN) end
98 :
デフォルトの名無しさん
2016/10/27(木) 12:20:18.56 ID:2MnkRHxj
もう一つお聞きしたいです。 空の配列に対してarr[810] = object とすると、arr[0]に入ってしまいます。 試しに、あらかじめ、配列の全要素に0とかを代入してやると正しい位置に入ります。 insertメソッドを使ってみても同様でした。 配列の長さが予めわからない場合、これだとできない気がするのでなるべくこの方法は取りたくありません。 スマートに挿入する方法は無いですか?
99 :
デフォルトの名無しさん
2016/10/27(木) 12:21:56.63 ID:2MnkRHxj
>>98 に補足
現在の配列の添字の最大数を超えて挿入したときの挙動はpushみたいでした。
100 :
デフォルトの名無しさん
2016/10/27(木) 13:09:46.97 ID:AljoQzp1
arrにはUnitsが入っててUnitsにはdrawがないから。 配列の話は君の勘違いでしょう
101 :
デフォルトの名無しさん
2016/10/27(木) 21:29:01.57 ID:4hI3qXiG
プログラムゲームをやっていたら 以下のような問題が出たのですが for i in 4..0 do と書いてもダメなようで どのようにすれば良いのでしょうか? #4から0を改行区切りで出力してください for i in 4..0 do puts i end
102 :
デフォルトの名無しさん
2016/10/27(木) 21:33:26.89 ID:IpcVW8ex
>>101 (1) 出力するときに 4-i を出力する
(2) Integerクラスで使えそうなメソッドがないか探す
好きな方を選べ
103 :
101
2016/10/27(木) 22:06:29.82 ID:4hI3qXiG
下のコードで動きましたが (0..4).to_a.reverse.each do |i| puts i end iをデクリメントすることができないとか ちょっと衝撃でした 最近はオブジェクトを操作するんで for文なんて使わないでしょうけど
104 :
デフォルトの名無しさん
2016/10/27(木) 22:13:34.88 ID:IpcVW8ex
105 :
デフォルトの名無しさん
2016/10/27(木) 22:42:19.91 ID:qlBkdymK
上で書かれてるようにIntegerの4.downto(0)でどーぞ より汎用的なのが欲しかったらstepを使ってね
106 :
101
2016/10/27(木) 22:55:48.72 ID:4hI3qXiG
PHPなら for ($count = 4; $count > 0; $count--){ } と、直感的に書けるのに Rubyってそういう言語なんだなと思いました
107 :
デフォルトの名無しさん
2016/10/27(木) 23:03:14.77 ID:qlBkdymK
>>98 DXRuby使ったことないから変なこと言ってるかもだけどHashとかと勘違いしてる可能性はない?
少なくともArrayは指定した要素数なければ自動的に拡張されるはずだし、リファレンスマニュアルにもそう書いてる
108 :
デフォルトの名無しさん
2016/10/27(木) 23:14:12.71 ID:IpcVW8ex
>>106 それは直感的というんじゃなくて、「PHPに慣れてる人から見れば」というだけだ
PHPのような書き方のループをほとんど使わない言語はたくさんある
109 :
デフォルトの名無しさん
2016/10/27(木) 23:52:33.07 ID:HseNjWnT
>>106 直感的といいながらそれだと0が出力されない件について。
>>101 「4から0を改行区切りで出力してください」
110 :
デフォルトの名無しさん
2016/10/28(金) 00:28:10.54 ID:W/QcN0Ng
これは恥ずかしい直感w 俺ならこうする puts (0..4).to_a.reverse
111 :
デフォルトの名無しさん
2016/10/28(金) 00:30:51.22 ID:hY3IWwKu
PHPは、JSよりも、クソだろ Rubyでは、ほとんどバグを作ることはない。天国
112 :
デフォルトの名無しさん
2016/10/28(金) 02:06:17.44 ID:hybKxCis
>>110 to_aしてreverseはこねくり回しててキモい
113 :
デフォルトの名無しさん
2016/10/28(金) 16:37:59.02 ID:Gcdt9agW
114 :
デフォルトの名無しさん
2016/10/29(土) 13:16:09.07 ID:Z9R3Bpkc
複数のEnumerableを同期させる一般的でエレガントな書き方って何? 元ネタが無限List同士の足し算なんで[]は使えない。 Lisp系のmapのように複数のEnumerableで要素毎に演算させたいのだけど。 一般的とかエレガント、とかいうのは言葉の綾なので 俺ならこうするっていうコードでいいです。
115 :
デフォルトの名無しさん
2016/10/29(土) 13:30:26.15 ID:Y7alBFBP
>>114 まずは自分がサンプル出してみようぜ
イマイチ何をしたいのか分からないんで
116 :
デフォルトの名無しさん
2016/10/29(土) 13:47:23.31 ID:pNJKjv6A
Lazy#zip とは違うん?
117 :
114
2016/10/29(土) 15:46:26.62 ID:Z9R3Bpkc
>>115 無限Listじゃないけど、
a = [1, 2, 3, 4, 5]
b = [2, 3, 4, 5, 6]
c = []
(0..4).each do |i|
c << a[i] + b[i]
end
こーゆー複数のEnumerableの要素同士の演算をやりたくて、
[]を使わないコードの一般的な書き方。
118 :
デフォルトの名無しさん
2016/10/29(土) 15:56:09.74 ID:Y7alBFBP
>>117 だったら
>>116 の通りだね
無限だったら Enumerable::Lazy#zip だし、有限なら Enumerable#zip
119 :
デフォルトの名無しさん
2016/10/29(土) 23:44:35.86 ID:FqWL80JH
a= 1.step.lazy b= 2.step.lazy p a.zip(b).map{|(x,y)|x+y}.take(10).force こんな感じかな
120 :
デフォルトの名無しさん
2016/10/30(日) 06:16:43.08 ID:6aoQoQ7p
いま友人と競技プログラミングのようなことをしているのですが 処理速度にインデントの有無や変数名・メソッド名の長さは影響するのでしょうか?
121 :
デフォルトの名無しさん
2016/10/30(日) 07:22:50.93 ID:E1a/AFOu
>>120 極端な長さ(100万文字とか)でない限りは無視できるレベル
122 :
デフォルトの名無しさん
2016/10/30(日) 07:33:28.32 ID:3gvxzMHV
>>120 標準添付ライブラリの benchmark で測ってみ
123 :
114
2016/10/30(日) 12:14:06.69 ID:EmeJsRHl
>>118 >>119 ありがとうございました。
元ネタも119のやり方でいけることを確認しました。
zipの使い方はもう少し勉強してみます。
124 :
デフォルトの名無しさん
2016/10/30(日) 13:42:37.03 ID:3A6g5SNv
>>121 >>122 ありがとうございます
短くしたりして10回行った平均タイム計測して比較していたのですが
言われてみれば短くなったような気がするけど変わってないような気もする程度で困っていました
ほんとうにありがとうございました
125 :
デフォルトの名無しさん
2016/10/30(日) 17:08:51.99 ID:DhcMHpiw
symbolのhashがぶつからなければ遅くならない
126 :
デフォルトの名無しさん
2016/10/30(日) 17:10:16.01 ID:DhcMHpiw
つまりひとつひとつの文字数を気にするより 変数名・メソッドの総数が(それぞれ数文字程度でも何億個もあれば)問題
127 :
デフォルトの名無しさん
2016/11/01(火) 03:29:08.77 ID:Y1KW6BLy
下の例文みたいにバッククォート文の中で新たにruby動かして文字を表示させて、 そのバッククォート文の帰り値をさらに表示させたんですが、 えらくquoteされてて、帰り値を他の操作に使うには扱いにくいです なんとかして元に戻せないでしょうか 例文 p `ruby -e 'p "what \n time \\n is \\\n it"'`
128 :
デフォルトの名無しさん
2016/11/01(火) 07:11:46.65 ID:LAzD7QHV
普通にeval使えばいいんじゃないか
129 :
デフォルトの名無しさん
2016/11/01(火) 13:46:39.38 ID:jrgGST5A
pやppだとpretty-printするから そのまま出力したい場合はputsとかIO#writeで
130 :
デフォルトの名無しさん
2016/11/02(水) 08:27:48.48 ID:haJxcE0h
p は美しくないぞ
131 :
デフォルトの名無しさん
2016/11/02(水) 14:27:05.74 ID:tET8fuT+
amazon apiで在庫検知したのどうやってツイッターにpostすればいいんですか^^;
132 :
デフォルトの名無しさん
2016/11/02(水) 16:49:50.54 ID:db1quxwb
twipy
133 :
デフォルトの名無しさん
2016/11/03(木) 08:10:12.47 ID:lfIkemy8
pp使うときってrequire 'pp'するじゃないですか? でもppなんて通常デバッグ用ですよね? 一時的にrequireするだけでソースコードに残さないですよね? そんなものをいちいち書きたくありません。 .rubyrc みたいなのでrequire 'pp'書いておけば どのスクリプトからでも使えるよみたいなのないですか? Railsの話ではありません
134 :
デフォルトの名無しさん
2016/11/03(木) 10:30:21.74 ID:57gZHyJM
コマンドラインオプションでええやん
135 :
デフォルトの名無しさん
2016/11/03(木) 10:51:02.30 ID:6FeMk1RE
import .rubyrc
136 :
デフォルトの名無しさん
2016/11/03(木) 13:29:30.56 ID:lfIkemy8
なさそうですね。ありがとうございました。
137 :
デフォルトの名無しさん
2016/11/03(木) 17:22:53.81 ID:DhApkK4z
環境変数RUBYOPTにオプションを設定する -rpp とか指定しておけばいい
138 :
デフォルトの名無しさん
2016/11/03(木) 19:08:39.80 ID:lfIkemy8
>>137 動きました。ありがとうございました。
これでコードレビューで、使ってないライブラリの
requireをコミットするんじゃねーよってドヤ顔できます。
139 :
デフォルトの名無しさん
2016/11/04(金) 08:04:24.16 ID:je13exBR
pry 使え
140 :
デフォルトの名無しさん
2016/11/05(土) 09:03:33.72 ID:3jWRFMI3
JavaScriptの分割代入みたいな簡単にかける構文はありませんか? let obj = {a: 1, b: 2, c: 3} let {a, b} = obj console.log(a) これすごく関数の引数にも使えるから便利なんです function foo({a, b}) { console.log(a) } foo(obj) あまり使いませんがネストされたオブジェクトでも一発でとってこれちゃうというw let obj = {a: 1, b: {bb: {bbb: 2}}} let {b:{bb:{bbb}}} = obj
141 :
デフォルトの名無しさん
2016/11/05(土) 09:08:44.59 ID:3jWRFMI3
あともう一つ。 let obj = { a: 1, foo() { console.log(this.a) }, } obj.foo() // 1と出力 もしくは、 let obj = new class { constructor() { this.a = 1 } foo() { console.log(this.a) } } obj.foo() // 1と出力 これ相当のコードをできるだけ短く書く方法ないでしょうか?
142 :
デフォルトの名無しさん
2016/11/05(土) 09:20:04.03 ID:g4s/HAgH
>>140 hash = { a: 1, b: 2 }
a, b = hash.values_at(:a, :b)
p a # => 1
def f(a:, b:); p a; end
f(hash) # => 1
143 :
デフォルトの名無しさん
2016/11/05(土) 09:26:45.75 ID:CJv/XjYq
古いrubyにはないけど取得だけなら Hash#dig
144 :
デフォルトの名無しさん
2016/11/05(土) 11:27:15.41 ID:3jWRFMI3
>>142 > a, b = hash.values_at(:a, :b)
=の左右の両方にaとbがでてきてdryではないようですね。
長い名前で数が多いと嫌な感じです。
name, value, total, count = hash.values_at(:name, :value, :total, :count)
ローカル変数に入れておけば静的解析ができるので名前のミスとか
テキストエディタでリアルタイムにわかるのですが。
function foo({name, value, total, count} {
みたいにすると、引数書いてるのとほぼ変わらない程度で
オブジェクトからローカル変数に入れることができるのですが。
さらにこれもRubyでは出来ないと思いますが、
return {name, value} のように書くことは出来ないですよね?
}
{name: name, value: value} の省略形です。
このようにオブジェクトのキー = 変数名としておくと
dryで簡単にオブジェクトして返すことができるのですが。
145 :
デフォルトの名無しさん
2016/11/05(土) 13:12:14.27 ID:g4s/HAgH
>>144 RubyはHashをそんなに使わないしね
JavaScriptで簡単に書けるパターン「も」あるよってだけだし
146 :
デフォルトの名無しさん
2016/11/05(土) 13:35:55.87 ID:3jWRFMI3
> RubyはHashをそんなに使わないしね では何を使うんですか?と聞かれたら オブジェクト(クラスのインスタンス)って答えるのだろうけど JavaScriptではハッシュとオブジェクトは同じもので class A { constructor() { this.name = "name" } } foo({name}) { console.log(name); } foo(new A()) みたいなことも出来ますよ。 なのでHashをそんなに使わないっていうのは あまり理由になっていません。
147 :
デフォルトの名無しさん
2016/11/05(土) 13:39:51.44 ID:3jWRFMI3
Rubyでもみたいな事したいってあると思いますがね。 keyword = params[:keyword] page = params[:page] limit = params[:limit] じゃなくて↓こう書きたいとか。 keyword, page, limit = request.params
148 :
デフォルトの名無しさん
2016/11/05(土) 13:55:01.42 ID:g4s/HAgH
>>146 そうですか、へーって感じですね
あとはJavaScriptスレでどうぞ
ここは煽りスレじゃないんで
149 :
デフォルトの名無しさん
2016/11/05(土) 15:03:39.50 ID:3jWRFMI3
煽りじゃなくて質問ですよw RubyでJavaScriptのクロージャーみたいなのを 書く簡単な方法はないでしょうか? let func = i => i+1 func(1) // 2
150 :
デフォルトの名無しさん
2016/11/05(土) 15:12:29.51 ID:fKvWQoRX
>>147 そういうのはRubyの言語仕様でやるのではなくてRailsなどがそういったオブジェクトを用意すべきだと思う。
151 :
デフォルトの名無しさん
2016/11/05(土) 15:23:37.67 ID:3jWRFMI3
>>150 言語仕様でやらないと無理だと思うよ。
代入先の変数名を関数が知ることは出来ないでしょ?
まあPerlみたいに、スカラー(単数の変数)に代入するか
リスト(要は配列)に代入するかを関数の中で知ることができる言語があるから、
"言語仕様に"そういうことがあれば関数が知ることができるかもしれないけど。
(見ての通り言語仕様があることが前提となってる)
ちなみにPerlの場合は、
sub foo { wantarray ? 1 : 2}
みたいに書くと以下のようになる。
(通常は配列として適したものを返すために使うべき)
$value = foo; # 2
@value = foo; # 1
wantarrayでどの型(正確に言うとコンテキスト)が要求されているかを
foo関数の中で知ることができるのだけど、同じように「どの変数名に代入しようとしているか?」を
知ることが出来ないと、引数省略して変数に入れることは出来ない。
152 :
デフォルトの名無しさん
2016/11/05(土) 16:01:00.44 ID:9rWJk3qM
>>149 初心者だけど
Procになるのかな
func = lambda { |i| i + 1 }
func.call(1) => 2
Kernel#lambdaはProcを作る方法の一つで、ほかにもいくつかあってそれぞれ特徴があるよ
あと呼び出しのfunc.call()はfunc.()とちょっと略しても書ける
>>151 便利そうだけどRubyにはないっぽい?
あと言語仕様でこうあるべきだイヤそうじゃない
みたいなのをここでやられても困るよ
153 :
デフォルトの名無しさん
2016/11/05(土) 16:07:31.56 ID:3jWRFMI3
>>152 言語仕様の話を始めたのは俺じゃないし。
言語仕様でなければ実現不可能だろうけど
別に言語仕様である必要はない。
JavaScriptなんて言語仕様になったけれども、対応してないブラウザでも
使えるようにするために、トランスラパイラを文法を変換したりしているからね。
Rubyの世界でもそういう改良版Rubyを使うとかいう方法でもいいのよ。
ようはより短く書く方法を探しているだけ。
154 :
デフォルトの名無しさん
2016/11/05(土) 16:09:40.54 ID:9rWJk3qM
>>153 >ようはより短く書く方法を探しているだけ。
だったら他の話には反応しなくて良いんだよ
ところでクロージャーみたいなのの話はどうでもいいんだろうか
俺答え損だった?
155 :
デフォルトの名無しさん
2016/11/05(土) 16:26:05.09 ID:3jWRFMI3
> 俺答え損だった? その答え自体は知ってたけど、 それがRubyでの一番短い書き方だって わかったので無駄ではないよ。 lambda とか call とかいう単語を 省くことは出来ないのね。
156 :
デフォルトの名無しさん
2016/11/05(土) 16:34:09.52 ID:g4s/HAgH
>>155 > lambda とか call とかいう単語を
> 省くことは出来ないのね。
だからなに?
質問じゃないじゃん
JavaScriptに有利な例題だけあげてJavaScritpマンセーしてるだけじゃん
そういうのは別スレでやれ
157 :
デフォルトの名無しさん
2016/11/05(土) 16:36:52.31 ID:p7aXJL/r
っ CoffeeScript
158 :
デフォルトの名無しさん
2016/11/05(土) 16:57:35.17 ID:u9ZZUUBm
>>145 いつの話だよ
今のRubyはRailsのせいでHashまみれの糞ビッチだよ
159 :
デフォルトの名無しさん
2016/11/05(土) 17:18:22.74 ID:3jWRFMI3
>>156 > 質問じゃないじゃん
え? 質問は
>>149 に書いたとおり
クロージャーみたいなのを簡単に書く方法ですが?
なんで質問に対する回答にコメントを
質問だって勘違いしてるの?
それとも回答にコメントしたらいけないって
言いたいのかな?
160 :
デフォルトの名無しさん
2016/11/05(土) 17:25:06.81 ID:3jWRFMI3
>>156 > JavaScriptに有利な例題だけあげてJavaScritpマンセーしてるだけじゃん
普段JavaScriptで書いていて、JavaScriptでもっと短く書くことができる。
無駄のないコードを書くのが好きなのでRubyでももっと短く書きたい。
Rubyは初心者だが、プログラミングは初心者ではなく検索能力もあるので
Rubyで同等またはRubyの方が短く書くことができるものであれば
大抵はすぐに見つけてしまう。だからそういうものは質問しない。
仮にRubyではそれができないのであれば検索しても見つかるはずがない。
見つかったものは質問しないが、見つからないものは質問するしかない。
だから単に俺が見つけられないものを質問しているだけなんだが、
それが結果的にRubyでは無理なことになってしまってるだけだよ。
161 :
デフォルトの名無しさん
2016/11/05(土) 17:42:40.29 ID:u9ZZUUBm
lambdaは->とも書ける 俺は書く位置が気持ち悪くて大嫌いだけどね Rubyが独立した関数式を持たないのは有名な欠点として昔から言われてることなので、今更言われてもそうだね不便だねとしか
162 :
デフォルトの名無しさん
2016/11/05(土) 17:55:37.24 ID:3jWRFMI3
http://qiita.com/sudahiroshi/items/c51618dec0f56a54670e > # 引き数が1つ
> foo = -> ( x ) { x * x }
> foo[ 5 ] # => 25
>
> # 以下のように呼び出すことも可能です
> foo.( 5 ) # => 25
> foo.call 5 # => 25
なんだ。lambdaいらねーじゃん。callいらねーじゃん。
こういうのを教えてくれよ。
> 今更言われてもそうだね不便だねとしか
そんなこと言われてもね。今更Ruby初心者といわれても
始めたばかり。どうしろと?
163 :
デフォルトの名無しさん
2016/11/05(土) 18:18:33.92 ID:9rWJk3qM
>>162 callは略せるって上に書いたでしょ
lambdaの方はしらんかったけどたしかにキモいなこれ
callの方も結構ヘンだけど
あと余計なことには反応しなくて良いんだってば
164 :
デフォルトの名無しさん
2016/11/05(土) 18:20:42.36 ID:VSrxz5YG
あなたRubyやんないほうがいいんじゃない? まあ仕事でRubyのプロジェクトに入っただけかもしれないけど。
165 :
デフォルトの名無しさん
2016/11/05(土) 18:45:31.46 ID:M1fQHNFf
喧嘩すんなよRubyが糞なのは普遍なんだから わかったならPython使え情弱どもが
166 :
デフォルトの名無しさん
2016/11/05(土) 18:49:13.91 ID:szmfxvT7
> 普段JavaScriptで書いていて、JavaScriptでもっと短く書くことができる。 フフッてなったw
167 :
デフォルトの名無しさん
2016/11/05(土) 19:25:21.38 ID:HMFIz/40
[5,2,3].sort # => ってソースに書いておくと [5,2,3].sort # => [2, 3, 5] みたいに置き換えてくれるツールがあったら教えてください
168 :
デフォルトの名無しさん
2016/11/05(土) 22:43:25.54 ID:LJBtWuSU
存在するファイルは上書きせずにファイルをコピーってどうやるの?
169 :
デフォルトの名無しさん
2016/11/05(土) 22:57:00.73 ID:CJv/XjYq
ダイヤお姉ちゃんに頼む
170 :
デフォルトの名無しさん
2016/11/05(土) 23:00:12.07 ID:LJBtWuSU
KurosawaDaiya.copy(from, dest) #=> NameError: uninitialized constant KurosawaDaiya 駄目でした
171 :
デフォルトの名無しさん
2016/11/06(日) 00:59:43.52 ID:Mq0g4tm5
それはお姉ちゃんをコピーしようとしてるのでは
172 :
デフォルトの名無しさん
2016/11/06(日) 03:07:23.22 ID:8WadcDvl
foo( a: data['a'], b: data['b'], c: data['c'], d: data['d'] ) これをもっと短く書く方法を教えて下さい!
173 :
デフォルトの名無しさん
2016/11/06(日) 09:09:40.26 ID:UB8ayWaX
>>147 Effective Ruby の項目10に書いてあるけど、
構造化データを扱う際、Hashの配列よりも、
クラスまたは、Struct(簡易クラス、クラスジェネレータ)のような専用の型を、使った方がいい
data[:name]
キー名のような実装の詳細が、隠蔽されず表に出てくる。
また、存在しないキーは、nilとなる
Person = Struct.new(:name, :address) #定数に代入
data = Person.new("foo", "fugafuga")
data.name
Structでは属性になるから、getter, setter も付いているし、
存在しない属性名でアクセスすると、NoMethodErrorになる
JavaScript(ES3)では、Hashが無いから、その代わりに、
Objectのプロパティを使っているので、obj.__proto__ という、
たまたま実行環境が使っている、キー名で上書きすると、誤動作する
だから、キーを作る際、__proto__かどうか、チェックしないといけないので不便
174 :
デフォルトの名無しさん
2016/11/06(日) 09:10:35.91 ID:6TZQqHcY
>>172 Rails使ってるなら
foo(data.symbolize_keys)
175 :
デフォルトの名無しさん
2016/11/06(日) 09:28:36.42 ID:rGVVvSQ9
foo(**data)
176 :
デフォルトの名無しさん
2016/11/06(日) 12:09:01.31 ID:8WadcDvl
>>174 >>175 dataにはa, b, c, d 以外も含まれているので
それではだめなのです。
177 :
デフォルトの名無しさん
2016/11/06(日) 13:13:30.71 ID:CGfTBBGj
178 :
デフォルトの名無しさん
2016/11/06(日) 13:37:48.19 ID:+j3xqinH
こんなもんfooのほうを変えるべきだろう
179 :
デフォルトの名無しさん
2016/11/06(日) 13:41:52.43 ID:6TZQqHcY
>>176 後出しでそんなこと言われてもねぇ…
そもそも foo で何をやりたいかにもよるし
180 :
デフォルトの名無しさん
2016/11/06(日) 14:28:52.63 ID:8WadcDvl
あ、sliceで出来たのでもういいです またなんかあったら聞きます
181 :
デフォルトの名無しさん
2016/11/06(日) 15:57:30.38 ID:6TZQqHcY
> あ、sliceで出来たのでもういいです こういう余計な一言はやめた方がいいよ
182 :
デフォルトの名無しさん
2016/11/06(日) 16:01:04.07 ID:YPGx/bgn
2ちゃんではよくあること あいさつ代わり
183 :
デフォルトの名無しさん
2016/11/06(日) 18:23:47.88 ID:Mq0g4tm5
Rubyでは代入演算子を再定義できないというのを知らなかったんですが ではこうしたい場合はどうするんでしょう? class Hoge attr_accessor(:array, :number) # いろいろ end みたいなClassがあったとして hoge = Hoge.new hoge = piyo としたときにpiyoがどんなものかによって処理を分けたいのです (具体的にはpiyoがArrayならarrayに入れる、 Hogeと似たようなものならアトリビュートをコピー、とか) 例えばinitialize_copyかなんかを上手く作ればそうなるよみたいな都合のいい話はないですか? それとも素直にHogeにset(other)みたいなメソッドを定義するべきでしょうか
184 :
デフォルトの名無しさん
2016/11/06(日) 18:32:02.92 ID:NZCpJm/D
そんな馬鹿みたいなクラスは作らないから答えようがない
185 :
183
2016/11/06(日) 19:02:10.01 ID:Mq0g4tm5
Rubyだと全部参照渡しだし = なんかは使わなそうですね 素直にメソッド作ります
186 :
デフォルトの名無しさん
2016/11/08(火) 01:53:05.89 ID:M6Rn2+El
確かRubyには、scala, Haxe みたいな、switchでのパターンマッチが無いよな そもそも動的言語で、型によって分岐するのは、設計がおかしい ちゃんと設計すれば、継承・インターフェース・ダックタイピングのオーバーロードで、 自然と型による分岐が無くなるはず
187 :
デフォルトの名無しさん
2016/11/08(火) 03:24:23.45 ID:107xoCwk
黒アワビ濡れ濡れお色気ビラビラ仕様のRuby 公開おなほ すとーるまんこはかきたれ
188 :
デフォルトの名無しさん
2016/11/08(火) 06:17:48.12 ID:ykrZTa7U
> 0001: 訪問:2016/11/06(日) 14:32
> 会社A
> 担当者BB
> 0002: 取引先:2016/11/07(月) 09:36
> 企業CCC
> 相談人DDDD EEEEEの件で契約
というtxtファイルを
> log=会社A\t担当者BB
> log=企業CCC\t相談人DDDD\tEEEEEの件で契約
という形に置換して出力するバッチを作りたいと思っています。
> Rubyはじめました: rubyでファイルの内容の一部を置換する
http://myruby.seesaa.net/article/125577047.html こちらを参考に
> f=File.open("input.txt","r:utf-8")
> buffer = f.read();
> p buffer
> # 中身を変換
> buffer.gsub!(/^[\d]{4}\:.*\:[\d]{2}\n/, "log=")
> p buffer
> f=File.open("output.txt","w:utf-8")
> f.write(buffer)
を書いてみたのですが、以下の置換も一つの.rbファイル内で続けて動作させるにはどうすればいいでしょうか
よろしくお願いします
buffer.gsub!(/\n/, /\t/)
buffer.gsub!(/\tlog\=/, /\nlog\=/)
189 :
デフォルトの名無しさん
2016/11/08(火) 11:49:52.31 ID:ZBAGJV1u
つぎのかたどうぞ
190 :
デフォルトの名無しさん
2016/11/08(火) 14:05:34.46 ID:LTPhc021
特定のウェブページを毎日チェックして、アルバイト、居酒屋 など、決まった文字列が掲載されてたら通知するandroidアプリを作りたいんですが、こういうの何て言いますか?
191 :
デフォルトの名無しさん
2016/11/08(火) 14:21:37.68 ID:RD7eA5MT
バイト探し
192 :
デフォルトの名無しさん
2016/11/08(火) 14:26:41.88 ID:ZBAGJV1u
スクレイピング ボット PIM
193 :
デフォルトの名無しさん
2016/11/08(火) 15:04:04.37 ID:LTPhc021
194 :
デフォルトの名無しさん
2016/11/08(火) 16:52:52.70 ID:ic1oOtKi
ちなみにスクレイピングは逮捕例もあるよ
195 :
デフォルトの名無しさん
2016/11/08(火) 19:51:30.63 ID:M6Rn2+El
>>188 > buffer.gsub!(/^[\d]{4}\:.*\:[\d]{2}\n/, "log=")
> p buffer
この後に、
buffer.gsub!(/\n/, /\t/)
p buffer
buffer.gsub!(/\tlog\=/, /\nlog\=/)
p buffer
エラーが起こった際、デバッグしにくいけど、
メソッドチェーンで、どんどんつなげていく事もできる
buffer.gsub!(/^[\d]{4}\:.*\:[\d]{2}\n/, "log=")
.gsub!(/\n/, /\t/)
.gsub!(/\tlog\=/, /\nlog\=/)
196 :
デフォルトの名無しさん
2016/11/08(火) 19:55:50.26 ID:ykrZTa7U
>>195 ありがとうございます!!!!!!!!!
197 :
デフォルトの名無しさん
2016/11/08(火) 22:18:28.32 ID:ykrZTa7U
>>195 無事に動きました!
助かりました、ありがとうございます
198 :
デフォルトの名無しさん
2016/11/10(木) 06:58:06.00 ID:MLyRIdhy
基本的な部分なのですが hashオブジェクトをto_aした場合に返値される配列の順序は hashオブジェクトにキーを設定した順序でいいのですか?
199 :
デフォルトの名無しさん
2016/11/10(木) 08:00:08.45 ID:+0vOVL7/
極端に古いバージョンでない限りはそれでいい
200 :
デフォルトの名無しさん
2016/11/10(木) 12:26:51.61 ID:Sha7NYgb
実装はそうなってるけど仕様で保証されてたっけ?
201 :
デフォルトの名無しさん
2016/11/10(木) 13:33:15.27 ID:dxAJlx69
今のバージョンは保証してる
202 :
デフォルトの名無しさん
2016/11/10(木) 14:27:24.56 ID:LGdObFSz
どうゆう理由でハッシュキーの順序を保証するようになったんかね 他の言語では基本順序は保証されていないよね(´・ω・`)
203 :
デフォルトの名無しさん
2016/11/10(木) 14:47:43.59 ID:dxAJlx69
204 :
デフォルトの名無しさん
2016/11/10(木) 15:04:32.11 ID:o6QUnq5t
順序に依存したコードを書きたい人の声が大きかったから
205 :
デフォルトの名無しさん
2016/11/10(木) 22:33:15.81 ID:+0vOVL7/
順序を保持するためだけにハッシュ表とは別にわざわざ無駄な線形リストを持ってるんだぞ 決して、たまたま順序通りになるようなアルゴリズムを選んだとか、 順序通りになるようにハッシュ表の実装を工夫したとかではなく、無理に明示的に順序を持たせてある
206 :
デフォルトの名無しさん
2016/11/10(木) 23:18:15.82 ID:pEVMYV3p
一般的には、Hashには2種類ある Hash は順序なし。 Ordered_Hash は追加した順番で、順序あり
207 :
デフォルトの名無しさん
2016/11/10(木) 23:44:37.48 ID:+0vOVL7/
順序付きのハッシュ表自体が一般的ではないだろ
RubyのHashは
>>205 で書いたとおりハッシュ表とは無関係に順序持たせてるし、
.NETのSortedDictionaryみたいに辞書の実装で要素をキーでソートされた状態で持つのはよくあるけど
あれはハッシュ表じゃなくて二分木やバイナリサーチだし
208 :
デフォルトの名無しさん
2016/11/11(金) 03:16:24.93 ID:wVch1D/r
209 :
デフォルトの名無しさん
2016/11/11(金) 07:13:41.60 ID:LSv6brFn
>>208 ブロック付きでこのメソッドを呼ぶと、yield のタイミングでブロックが実行される
parse('hoge') { |t, r| p [t, r] }
という風にすると、yield の内容が表示される
210 :
デフォルトの名無しさん
2016/11/11(金) 08:58:07.26 ID:ENznHnYU
Rubyのyieldはただのコールバック関数呼び出しの シンタックスシュガーだからなぁ。 JavaScriptでかけばこんな感じだよ。 a = [1, 2, 3, 4] forEach(a, function(i) { return i * 2 }) function forEach(arr, block) { var ret = [] for (var i = 0; i < arr.length; i++) { ret[i] = block(arr[i]) } return ret } あとは書き方程度の問題。ブロックが引数の最後の一つである場合に限り 引数のblockコールバックを省略することが出来て、代わりにyieldを使って そのコールバックが呼び出せるってだけ。
211 :
デフォルトの名無しさん
2016/11/11(金) 09:55:02.27 ID:e7T2VXvj
pythonのyieldとはだいぶ違ってた
212 :
デフォルトの名無しさん
2016/11/11(金) 14:39:07.80 ID:kzNknik+
初めて書き込みます。windowsで、rubyをインストールしました。helloruby.rbと書くと、内部コマンドまたは〜というエラーメッセージが出ます。何が原因だと思いますか?
213 :
デフォルトの名無しさん
2016/11/11(金) 18:33:52.72 ID:+0sZIajy
214 :
デフォルトの名無しさん
2016/11/11(金) 18:58:09.57 ID:XRaelh1g
>>213 返信ありがとうございます。
ruby -vではきちんとバージョンが表示されるのに、helloruby.rbと書くと内部コマンド〜とエラーメッセージが出ます。この場合どのようにしたら良いのでしょうか?自分なりに調べたのですが全く情報が出てこず…。初心過ぎる質問で申し訳ありません。
215 :
デフォルトの名無しさん
2016/11/11(金) 19:01:01.28 ID:UQPlBidt
どのwindowsにどのruby入れてどんなエラーが出たか全部書いて
216 :
デフォルトの名無しさん
2016/11/11(金) 20:13:58.18 ID:JZCe9Y2P
最近の Windows は .rb を実行可能に出来るん?
217 :
デフォルトの名無しさん
2016/11/11(金) 20:18:26.25 ID:UQPlBidt
それは普通に出来る
218 :
デフォルトの名無しさん
2016/11/11(金) 20:55:45.18 ID:xrgRbR8m
ruby helloruby.rb かな?
219 :
101
2016/11/11(金) 21:53:06.05 ID:goTatCVE
毎日定時帰りしたら首になりそう ■使用するプログラミング言語/ツール/特殊技術 ・Ruby on Rails ・MySQL / PostgreSQLなどのデータベース技術 ・Javascript(jQuery)の技術 ・サーバ構築、管理の技術(AWS) ・HTML / CSSの技術(ウェブページのコーディング技術) ■月給20万〜 ※経験・スキルを考慮のうえ、当社規定により優遇いたします。 ※上記給与に、見込残業代35時間分43,000円分を含みます。 (見込残業代 月35時間分を超過した場合は別途支給)
220 :
デフォルトの名無しさん
2016/11/11(金) 23:39:57.27 ID:N42G00o6
43,000 / 1.25 / 35 ≒ 980
221 :
デフォルトの名無しさん
2016/11/11(金) 23:46:59.86 ID:LSv6brFn
この時代にjQueryはないわー
222 :
デフォルトの名無しさん
2016/11/12(土) 03:08:59.71 ID:SNnuUkOH
月35時間残業して給料20万… しかも手取りですら無いという これはヤバイわ
223 :
デフォルトの名無しさん
2016/11/12(土) 03:41:54.01 ID:fAGx8Up8
>>221 RailsでjQuery以外を使おうと思ったら苦難の道で?w
224 :
デフォルトの名無しさん
2016/11/12(土) 03:52:09.03 ID:fAGx8Up8
訂正 RailsでjQueryの代わりに導入すべきと言われるフレームワークを使おうと思ったら苦難の道やで? jQueryを含め単なるライブラリ程度であれば簡単に使えるけど AngularとかReactとかJavaScriptのフロントエンドフレームワークを 組み合わせる方法をRailsは用意していない。 Rails 5でAPIモードというJavaScriptのフレームワークを使う前提のモードができたけれども、 ぶっちゃけこれRailsの便利な機能の多くが非推奨になりましたって言ってるようなもんだからねw ビューがバッサリなくなって、コントローラーの機能も必要最小限になる。 その分をJavaScritフレームワークで実現するんだけど、Railsにはそれらと組み合わせる機能がかけている。 RailsでJavaScriptのテストはどうやれば良いんだ?レベル。
225 :
デフォルトの名無しさん
2016/11/12(土) 04:16:39.20 ID:eAhK3KJp
朝っぱらから気合い入った長文乙
226 :
デフォルトの名無しさん
2016/11/12(土) 04:22:33.43 ID:6wPviZ3t
>>219 35時間残業して43,000円にしかならないのか
227 :
デフォルトの名無しさん
2016/11/12(土) 04:25:14.43 ID:6wPviZ3t
>>224 どうせなんでもjsonで出し入れするんだから
viewなんていらないしrailsである必要すらない
228 :
デフォルトの名無しさん
2016/11/12(土) 04:33:26.95 ID:fAGx8Up8
>>225 あ、朝?
普段君が何時頃に起きなきゃいけない生活なのかがよく分かるわ。
こっちは会社まで徒歩でも30分。出社時間が一応10時で(基本的に残業なし)
Slackに書くだけで私用を理由に自宅作業したり早く退社してもOK
遅刻とかそういう概念もないんでw
229 :
デフォルトの名無しさん
2016/11/12(土) 04:36:08.01 ID:fAGx8Up8
>>227 > viewなんていらないしrailsである必要すらない
その通り。Railsの終焉が見えるよねw
ちなみに俺はRubyよりもJavaScriptの方が好き。
メインはJavaScriptで、その背後にあるサーバーは
なんでもいいという時代かな。
230 :
デフォルトの名無しさん
2016/11/12(土) 04:55:24.42 ID:W5RGEoAt
231 :
デフォルトの名無しさん
2016/11/12(土) 05:00:57.16 ID:fAGx8Up8
>>230 世の中にはかわいそうな会社があるねとしか
見てなかったwww
232 :
デフォルトの名無しさん
2016/11/12(土) 07:15:36.64 ID:UXa3WItJ
>>229 だったらなんでRubyスレを覗いてるんだろうか?
嫌いなRubyを叩いて憂さ晴らしをしたいのかな?
233 :
デフォルトの名無しさん
2016/11/12(土) 07:54:30.01 ID:SNnuUkOH
ちょっと上で暴れてたRuby使わなきゃならなくなったJS大好きなロリコンだろ もう触るなよ
234 :
デフォルトの名無しさん
2016/11/13(日) 11:27:30.83 ID:8tp89YW7
本屋行ったらPython本増えたなあ Rubyで機械学習って本書いたら…売れねえか 機械学習や人工知能という神風が吹いて国内でもPythonに完敗なんだろうな
235 :
デフォルトの名無しさん
2016/11/13(日) 11:52:13.63 ID:hnH+OR8d
マルチ誰得
236 :
デフォルトの名無しさん
2016/11/13(日) 12:15:30.12 ID:T5+9PjbV
>>234 もう勝負は着いてるんだからみっともないことはやめなさい
この国のITはガラパゴス化した技術に拘って世界に取り残されるという失敗をさんざん繰り返してきたというのに、またその例を増やす気か
237 :
デフォルトの名無しさん
2016/11/13(日) 15:44:25.64 ID:e+lvJCbH
久々にリアル本屋行ってみたら Rubyの棚よりPythonの棚の方が大きくなってた 胸熱 データサイエンティストのみなさんのおかげですωωω
238 :
デフォルトの名無しさん
2016/11/13(日) 20:44:27.50 ID:5YmDMkhP
Rubyってコンパイル型にできないの? 例えば Cなら、 cc hoge.c | ./a.out にすればインタプリタ型になるし、 実行ファイルも残る。 Rubyではコンパイルと実行を分割して実行ファイルを残す方法ってないのかな。
239 :
デフォルトの名無しさん
2016/11/13(日) 20:59:12.44 ID:miyqCymn
おます
240 :
デフォルトの名無しさん
2016/11/14(月) 02:10:30.72 ID:XIKx0ys+
>>219 同じことしているのに ニートの俺には給与ないんだけど・・・
あと最近はSwiftでスマホアプリ作って遊んでる
こんなの仕事でやったら闇落ちしそうなので プログラマとして働くつもりないけど
まぁそれ以前に、実務経験ないから雇ってもらえないねん _(:3 」∠)_=3
241 :
デフォルトの名無しさん
2016/11/14(月) 04:04:12.28 ID:OCTkBwGI
Rubyはいいと思うが、なかなか覚えられない。結局ちょっとした処理をしようと すると、C#とかを引っ張り出してくる。Shell感覚で使えたら最高だと思うが 普通はmouseだし、Tool系はTCLだし。 Rubyって主にどういう場面でつかうんだ?
242 :
デフォルトの名無しさん
2016/11/14(月) 05:24:04.01 ID:esjkHDa1
>>240 ハローワークに、プログラミングを未経験・独学で勉強している人の募集も一杯ある
243 :
デフォルトの名無しさん
2016/11/14(月) 06:41:55.09 ID:aL/Lu1lD
>>241 今のRubyはRailsのDSLだよ
知らなかったの?
244 :
デフォルトの名無しさん
2016/11/14(月) 06:55:39.43 ID:5ieSClDh
245 :
デフォルトの名無しさん
2016/11/14(月) 07:01:01.48 ID:U3HMZCux
>>241 Unix 上でちょっとしたことをしたいとき用言語としてよく使うよ
まさに昔の Perl の代替
246 :
デフォルトの名無しさん
2016/11/14(月) 07:13:45.48 ID:aL/Lu1lD
Rubyは入ってなかったり入っててもバージョンが古いことが多いからなあ Perlの代わりに使うのは厳しいわ
247 :
デフォルトの名無しさん
2016/11/14(月) 07:37:53.70 ID:U3HMZCux
>>246 手元でやるだけのちょこっとしたことだから、ポータビリティは必要ない
ごく一部の例でいえば、何かが吐き出したlogファイルをサクッと解析させたりとかね
248 :
デフォルトの名無しさん
2016/11/14(月) 08:03:38.77 ID:esjkHDa1
Ruby, Groovy は、DSL向き。 SASSも、Ruby また、設定ファイルとしても読みやすいから、Chef, Puppet でも使われている 「たのしいRuby」など、良本が揃っているから、勉強しやすく、Java, C#ほど難しくない また、Rubyから静的言語の、Elixir, Haxe, Kotlin などへ移りやすい
249 :
デフォルトの名無しさん
2016/11/14(月) 10:42:07.67 ID:AJSSB3HL
>>215 >>214 です。windows8にruby23-x64を入れました。
helloruby.rbと打つと、
’helloruby.rb’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出ます。
250 :
デフォルトの名無しさん
2016/11/14(月) 10:42:37.62 ID:AJSSB3HL
認識させるにはどうしたらいいのでしょうか?
251 :
デフォルトの名無しさん
2016/11/14(月) 11:01:12.14 ID:CNrivUWZ
perlの代わりならpython rubyは見た目perlに似てるだけでperlの代わりにはならない
252 :
デフォルトの名無しさん
2016/11/14(月) 11:03:12.46 ID:CNrivUWZ
253 :
デフォルトの名無しさん
2016/11/14(月) 11:28:33.20 ID:d18MPt7T
>>249 ruby 〜スクリプトのパス/helloruby.rb
ってやってる?
254 :
デフォルトの名無しさん
2016/11/14(月) 11:36:27.20 ID:igQzh1Us
255 :
デフォルトの名無しさん
2016/11/14(月) 11:40:58.22 ID:igQzh1Us
256 :
デフォルトの名無しさん
2016/11/14(月) 11:49:25.61 ID:igQzh1Us
コマンドプロンプトを開いて次の2行を実行 assoc .rb=Ruby.File ftype Ruby.File="C:\(Rubyのあるpath)\ruby.exe" "%1" %* ・パスは適切なものを選ぶ ・管理者アカウントで実行 (runas /administrator とかでも可能)
257 :
デフォルトの名無しさん
2016/11/14(月) 12:42:24.19 ID:XIKx0ys+
>>242 うち 田舎やけん
そんなハイカラな仕事する会社ないんよ
258 :
デフォルトの名無しさん
2016/11/14(月) 18:36:58.46 ID:6IAxrkLB
Ruby → JavaScript, Python とかの互換が簡単にできて、 これらを取り込んでしまえばRubyにもそれなりの存在意義は ある気がするな。逆は難しいだろうから。
259 :
デフォルトの名無しさん
2016/11/15(火) 02:36:49.43 ID:APHjFyJV
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、 JS(ES5), Flash, PHP, C++, Java, C#, Python に書き出せる。 Windows8.1対応。IDEは、FlashDevelop このサイトで、ブラウザでプログラミングして、実行できる Try Haxe ! try.haxe.org/ Haxeプログラミング入門、尾野政樹、2015 Haxeからも、Rubyへ変換できない。 何かの言語から、Rubyへ変換できればなあ
260 :
デフォルトの名無しさん
2016/11/15(火) 04:34:06.60 ID:sHZUXp5G
>>259 (*'ω'*)それを君が開発すればイイジャマイカ スルメイカ
261 :
デフォルトの名無しさん
2016/11/15(火) 04:48:52.90 ID:ulUg8AFG
262 :
デフォルトの名無しさん
2016/11/17(木) 21:43:20.86 ID:mx0eMjxm
今ってあれだよなElixir待ちって感じだよな Pythonとの勝敗はほぼ付いてしまった。 ElixterはRuby互換あるといいな。
263 :
デフォルトの名無しさん
2016/11/17(木) 23:34:45.90 ID:iGNJFpBr
静的型検査のない関数型とかゴミカスだろ コードの正しさが自明という関数型最大のメリットが半減してる
264 :
デフォルトの名無しさん
2016/11/18(金) 16:09:55.66 ID:vbdBJsNN
○ erlang × elixir erlangの良いところをつぶしたのがelixir
265 :
デフォルトの名無しさん
2016/11/18(金) 16:38:53.40 ID:1sC7EnMR
じゃあRuby3待ちも加えよう
266 :
デフォルトの名無しさん
2016/11/20(日) 15:31:53.51 ID:Nkcoggcj
Rubyの資格勉強をしていて getsというのはダンディ板野なのではなく、 get-stringのことなのだと分かった。
267 :
デフォルトの名無しさん
2016/11/21(月) 09:22:12.04 ID:yuIFR8QG
268 :
デフォルトの名無しさん
2016/11/21(月) 09:37:40.89 ID:0N8j/p/K
>>248 > Ruby, Groovy は、DSL向き。
どこからどう見てもRubyのコードなのに
それをDSLとか呼ぶのやめようぜw
doとか出てきた時点で萎える
269 :
デフォルトの名無しさん
2016/11/22(火) 11:31:16.12 ID:bGBSJtcd
270 :
デフォルトの名無しさん
2016/11/22(火) 11:32:44.53 ID:Pvp5yOqg
バイナリファイルなら0x07で音がでる
271 :
269
2016/11/22(火) 11:44:14.33 ID:bGBSJtcd
>>270 早速どうも。 バイナリファイルの性(さが)なんですね
272 :
デフォルトの名無しさん
2016/11/22(火) 11:56:40.62 ID:9QZ/pTkg
ベル文字(ベルもじ、BEL: bell character)またはベルコード(bell code)とは、制御文字の一種である ベル文字は、ASCIIとUnicodeでは十進数で7、十六進数で0x07に割り当てられている。 キャレット記法では ^G と表され、Unicodeでは制御文字の図形表現として(U+2407)が定義されている Rubyは実行環境に、RubyVMを使った、1.9以降を使った方がいい
273 :
269
2016/11/22(火) 12:10:26.36 ID:bGBSJtcd
>>272 なるほど。 新しいRubyを使ってみます。 今のRuby1.8.6 は応急のテスト用なので
274 :
デフォルトの名無しさん
2016/11/22(火) 14:28:44.44 ID:3UDTrTQV
sprintf("%04d",15)の4の部分に変数を使いたい場合ってどうしたらいいんでしょう?
275 :
デフォルトの名無しさん
2016/11/22(火) 14:46:36.63 ID:E5xR5zcu
printf("%0*d", 4, 15)
276 :
デフォルトの名無しさん
2016/11/22(火) 15:06:37.29 ID:3UDTrTQV
277 :
デフォルトの名無しさん
2016/11/22(火) 22:40:50.60 ID:bGBSJtcd
Windows7-Pro Ruby 2.3.1 (x64)
Ruby2.3.1をインストールしバージョンの確認ができましたが、毎回 cd でディレクトリを
変えるのが面倒なので、コマンドプロンプトのショートカットをbin内に作り、このプロパティの
作業ディレクトリを変更して直で作業できるようにしました。
ここで、ショートカットのアイコンを
の宝石型にしたいのですが、この画像はどこに保存されているのでしょうか?
あるいはWebのどっかでDLできますか?
278 :
デフォルトの名無しさん
2016/11/22(火) 23:08:14.78 ID:qW+6ZAFd
googleで画像検索してみたら?
279 :
277
2016/11/22(火) 23:12:23.05 ID:bGBSJtcd
>>278 したけど無かったです。 Windowsのアイコン一覧にも無かった
280 :
デフォルトの名無しさん
2016/11/22(火) 23:27:14.21 ID:qW+6ZAFd
を右クリックして保存でもいいな
281 :
デフォルトの名無しさん
2016/11/22(火) 23:50:51.41 ID:VrepQFzl
ruby.exeに埋め込まれてた気がする アイコン選ぶときにexeって選べなかったっけ? 無理ならResource Hackerかなんかで抽出
282 :
デフォルトの名無しさん
2016/11/23(水) 00:00:26.69 ID:fCj7qIPS
283 :
277
2016/11/23(水) 00:34:35.33 ID:XRl7gwFc
284 :
デフォルトの名無しさん
2016/11/23(水) 01:06:25.90 ID:tyNVpJn+
285 :
デフォルトの名無しさん
2016/11/23(水) 02:10:56.09 ID:tyNVpJn+
286 :
277
2016/11/23(水) 02:25:08.36 ID:XRl7gwFc
287 :
デフォルトの名無しさん
2016/11/24(木) 13:46:49.29 ID:SaghWnm/
replace.rbを実行すると、 source.datファイル 文字 #kokokara 書き換えたい文字 #kokomade 文字 て感じでコメントで囲まれた部分のみ書き換えたい。 どうすればいい?
288 :
デフォルトの名無しさん
2016/11/24(木) 14:14:50.38 ID:ZpQTd+Xn
buff = '' File.open('source.dat'){|fh| buff = fh.read.sub( /(?=#kokokara)(.*?)(?>#kokomade)/m ){ '書き換え' } }
289 :
デフォルトの名無しさん
2016/11/24(木) 14:38:01.91 ID:SaghWnm/
ありがとうございます
290 :
デフォルトの名無しさん
2016/11/24(木) 18:44:14.32 ID:v6KW5pDh
Timeをnewしたり加減算する時に都度丸めずとも はじめから分未満を丸めるgemとかありますか?
291 :
デフォルトの名無しさん
2016/11/24(木) 23:46:30.89 ID:g1cJ7kXy
Railsならメソッドチェーンで、1週間前・後を、 1.weeks.ago, 1.days.from_now など、色々な表現ができるから、探してみれば?
292 :
デフォルトの名無しさん
2016/11/25(金) 00:39:15.70 ID:6I1tAUNu
自前でTimeにモンキーパッチ
293 :
288
2016/11/25(金) 15:35:05.30 ID:K8sLqeeD
>>287 ごめんなさい、大嘘書いてた
(?=...)(.*?)(?>...) は間違いで、
(?<=...)(.*?)(?=...) として後読みと先読みで囲って、$1 に書き換え前の文字列
buff = File.open('source.dat'){|fh| fh.read.sub( /(?<=#kokokara\n)(.*?)(?=#kokomade)/m ){ "書き換え\n" } }
マーカーを消したかったら
buff = File.open('source.dat'){|fh| fh.read.sub( /#kokokara(.*?)#kokomade/m ){ "書き換え" } }
294 :
デフォルトの名無しさん
2016/11/26(土) 15:01:36.97 ID:mx1WdaLu
>>293 >( /(?<=#kokokara\n)(.*?)(?=#kokomade)/m )
^ を付けて、#kokokara, #kokomade を、行頭に限定した方がいいかも
( /(?<=^#kokokara\n)(.*?)(?=^#kokomade)/m )
295 :
デフォルトの名無しさん
2016/11/28(月) 17:29:57.45 ID:S7Gjt5Bx
【12月14日】 日本発の世界恐慌! 【米利上げ】
12月14日に利上げをしたら、世界中の株価暴落になる、100%間違いない。
VIDEO 終いには政府にも支えることができなくなり、どん底に落ちていきます。日本政府がアメリカ国債の25%を引き出すと世界経済が破綻し、マイト レーヤは出現するでしょう。マイト レーヤが公に現れるにつれてUFOが、とてつもない数で姿を表すでしょう。
タクシー運転手(65)が意識失い死亡 千葉
http://headlines.yahoo.co.jp/hl?a=2016112 認知症の過程は放射能汚染によって加速します。問題は、多くの人々が放射能の影響で死んでいるのに、日本政府が何も認めないことです。マイト レーヤは原発の閉鎖を助言されます。非常に間もなくマイト レーヤをテレビで見るでしょう。彼は「匿名」で働いております。
296 :
デフォルトの名無しさん
2016/11/28(月) 22:42:18.84 ID:padn7mYh
yield についてドラえもんを例に説明してくれ。
297 :
デフォルトの名無しさん
2016/11/30(水) 20:00:09.42 ID:PNa3/H0Q
ミニツクが復活している・・・
298 :
デフォルトの名無しさん
2016/11/30(水) 20:06:58.40 ID:SfFGX6QD
ミニツクの初心者用コースってコードの実行例で結構間違いあるよね ホントの初心者だと迷いそうだわ(´・ω・`)
299 :
デフォルトの名無しさん
2016/11/30(水) 22:11:42.44 ID:0zul0T3a
ENV['my_application_variable'] = '1' if ENV['my_application_variable'].blank? 2回でてくるmy_application_variableがdryじゃないんで 嫌なんですけど、これを短く書く方法はないですか? 条件 ・使っているライブラリの仕様上、環境変数にいれなければならない。 ・空文字でも'1'を入れる必要があるので、||=は使えない。 ・Railsで使えるメソッドは使ってOK 条件付き代入みたいなものないかね?
300 :
デフォルトの名無しさん
2016/12/01(木) 07:43:04.07 ID:91ReGJeh
MAV = 'my_application_variable' ENV[MAV] = '1' if ENV[MAV].blank?
301 :
デフォルトの名無しさん
2016/12/01(木) 09:40:44.58 ID:d1oSzjmi
>>300 二行になってローカル変数が増えてる。
もっとマシな方法ないの?
302 :
デフォルトの名無しさん
2016/12/01(木) 12:11:29.17 ID:5zfWITAP
ENV['my_application_variable'] = '1' when blank
303 :
デフォルトの名無しさん
2016/12/01(木) 21:04:29.89 ID:d1oSzjmi
だめみたいね。ここまでか irb(main):001:0> ENV['aaa'] = '1' when blank SyntaxError: (irb):1: syntax error, unexpected keyword_when, expecting end-of-input ENV['aaa'] = '1' when blank ^ from /usr/bin/irb:11:in `<main>'
304 :
デフォルトの名無しさん
2016/12/01(木) 21:19:40.96 ID:2IFm11I0
rubyのhashは初期値設定できた
305 :
デフォルトの名無しさん
2016/12/01(木) 21:46:59.02 ID:qbmZssP5
呼び出すときにこうするとか ENV['my_application_variable'].to_s.sub(/\A\z/, '1') ライブラリで使うみたいだし無理か
306 :
デフォルトの名無しさん
2016/12/01(木) 21:52:22.17 ID:2IFm11I0
ENV.fetch('myhoge', '1')
307 :
デフォルトの名無しさん
2016/12/01(木) 22:53:15.81 ID:3crCXgJS
いいじゃんそれで 他にやることあると思う
308 :
デフォルトの名無しさん
2016/12/01(木) 22:58:11.96 ID:N8O9wUz9
DRYにこだわりすぎてもダメだしな DRYはメンテナンスしやすくするためのいち手段 手段が目的になってはいけない
309 :
デフォルトの名無しさん
2016/12/02(金) 00:18:59.48 ID:tqwX+tIq
でももしこれが可能ならDRYにするんでしょ? 手段が〜とか出来ないことの言い訳にしか見えないよ。
310 :
デフォルトの名無しさん
2016/12/02(金) 04:38:07.11 ID:RG701yLz
>・空文字でも'1'を入れる必要があるので、||=は使えない。 この条件がある以上は自分で用意するしか無いね Hashにモンキーパッチでもすればいいよ
311 :
デフォルトの名無しさん
2016/12/02(金) 06:57:28.44 ID:8YvcaX3X
というか元々の仕様上堂々と2行分の処理だよね 勝手に「こんなの簡単でしょ1行でサクッとできるでしょ」とか言われてもギリっと歯を噛むしか
312 :
デフォルトの名無しさん
2016/12/02(金) 07:15:46.16 ID:ODJLJCqj
つか、環境変数が空文字列ってありえるのか? 設定されてない場合は nil が返るはずなんだが… $ HOGE="" $ ruby -e 'p ENV["HOGE"]' nil
313 :
デフォルトの名無しさん
2016/12/02(金) 08:02:05.09 ID:JTKNeiyC
>>312 それシェル変数。export しないと子プロセスに渡らない。
ついでに言うとスペース一個とかでも blank? は真になる。
314 :
デフォルトの名無しさん
2016/12/02(金) 15:45:28.28 ID:ocojT6FV
macroで済ませたいところ
315 :
デフォルトの名無しさん
2016/12/02(金) 16:12:34.82 ID:Yd67HXR2
crystal使おう
316 :
デフォルトの名無しさん
2016/12/04(日) 12:40:41.70 ID:ytM7QMnr
def foo (*args) p args p args[0] p *args end foo [1,2,3] 出力結果 [[1,2,3]] [1,2,3] [1,2,3] 最後の p *args の意味が分からないのですが、どういう構文なのでしょうか?
317 :
デフォルトの名無しさん
2016/12/04(日) 12:47:37.04 ID:HCAAGxQ4
*はsplatと呼ばれる 直後のオブジェクトにto_aをかけると思ってもらうといい
318 :
デフォルトの名無しさん
2016/12/04(日) 13:08:08.37 ID:tKcWat/f
>>316 配列の展開では。
irb(main):001:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):002:0> print a
[1, 2, 3]=> nil
irb(main):003:0> print [1,2,3]
[1, 2, 3]=> nil
irb(main):004:0> print *a
123=> nil
irb(main):005:0> print 1,2,3
123=> nil
319 :
デフォルトの名無しさん
2016/12/04(日) 13:27:46.42 ID:ytM7QMnr
>317 ありがとうございます。 >318 irb(main):001:0> a = [1,2,3] => [1, 2, 3] irb(main):002:0> *a SyntaxError: (irb):2: syntax error, unexpected '\n', expecting '=' from C:/Ruby21-x64/bin/irb:11:in `<main>' *aの評価値を見ようとしていてうまくいかなくてどうなっているんだ、と思ってたのですが、pすればいいんだ。 (expecting '=' で気づけ、自分) 納得いきました。ありがとうございました。
320 :
デフォルトの名無しさん
2016/12/05(月) 15:27:42.33 ID:dF177W8B
321 :
デフォルトの名無しさん
2016/12/06(火) 01:28:22.79 ID:HR1yYwh6
Ruby の C 言語による拡張ライブラリを作成して実行しているのですが, 再現性の無いバグに悩まされています.同じプログラムを5回動かすと4回ぐらいコケて, 下に示すようなエラーが出力されます. 同じライブラリを C 言語プログラムから呼び出すとエラーが出力されません. そのため,gdb 等でのデバッグが出来ません. -- Crash Report log information -------------------------------------------- ... -- Control frame information ----------------------------------------------- ... -- C level backtrace information ------------------------------------------- -- Other runtime information ----------------------------------------------- ... C 言語プログラムから呼び出すとエラーが出ないということは, rb_define_class 等で定義しているラッパ部分の記述に問題が有るような 気がしていますが,printf によるデバッグで場所を特定出来ないでおります. また,問題は C level backtrace information のところに出力がされないことだと 思っているのですが,ココに何か出力させるには,gcc -g のオプション以外に 何か必要なのでしょうか?
322 :
321
2016/12/06(火) 01:29:36.00 ID:HR1yYwh6
ちょっと古いけすけど,ruby 2.0.0, OSX,xcode の gcc を使っています.
323 :
321
2016/12/06(火) 01:31:37.05 ID:HR1yYwh6
extconf.rb から出力された Makefile をそのまま利用しています.
324 :
デフォルトの名無しさん
2016/12/06(火) 12:07:10.61 ID:SXsp+YBz
ソース貼れ
325 :
デフォルトの名無しさん
2016/12/06(火) 13:05:53.77 ID:Kn1BSDAJ
テキストファイルから正規表現の条件にマッチする数列のみを取り出すプログラムを作りたい。 #number.txt 139 134 243 154 265 datafile =
326 :
デフォルトの名無しさん
2016/12/06(火) 13:07:05.86 ID:Kn1BSDAJ
テキストファイルから正規表現の条件にマッチする数列のみを取り出すプログラムを作りたい。 #number.txt 139 134 243 154 265 datafile = "number.txt" File.open(datafile) do |f| f.each_line do |line| p /^[1][3][0-9]$/ =~ line end end これだけだと 0 0 nil nil nil と出力されてしまう。 139 134 と出力するにはどうしたらいいか。
327 :
デフォルトの名無しさん
2016/12/06(火) 13:30:50.46 ID:rcXtUD5h
>>326 /re/ =~ str の戻り値自身はマッチした位置情報のみを返す
0は0文字目でマッチしたという意味でnilはマッチしなかったという意味
マッチした文字列を利用したい場合は今後のことも考えて()を使う
正規表現内の1番目の()で囲った正規表現にマッチした文字列は変数 $1 か String#matchの戻り値[1] で利用できる
irb> p $1 if '1122334455' =~ /([2]+)/
"22"
irb> m = '1122334455'.match(/([2]+)/); p m[1] if m
"22"
よってスクリプトはこんな感じになる
datafile = "number.txt"
File.open(datafile) do |f|
f.each_line do |line|
matched = line.match(/^([1][3][0-9])$/)
p matched[1] if matched
end
end
328 :
デフォルトの名無しさん
2016/12/06(火) 13:35:42.41 ID:ui9UYxht
^13\d$でいいんじゃないの?
329 :
デフォルトの名無しさん
2016/12/06(火) 13:39:38.26 ID:rcXtUD5h
実際はもっと長い正規表現なのかもしれないし()の利用作法だと思って混乱するのも嫌なので元の部分は極力直さなかった 個人的には\Aと\Zを使いたかったが本筋ではない
330 :
デフォルトの名無しさん
2016/12/06(火) 14:29:41.50 ID:0+futo+K
$ ruby --version ruby 2.1.10p492 word1 = /<td align="center"><a href="http:\/\/.*\/" target="_blank">/ puts line if line =~ word1 で画面に出力させることができています。後の処理で、word1の内容を置換したいのですが、 上手く行きません。 puts line = line.gsub(word1,'【') あるいは puts line = line.gsub(/<td align="center"><a href="http:\/\/.*\/" target="_blank">/,'【') でもダメです。入力ファイルの全てが出てきています。 質問が的はずれかもしれませんが、=~,とgsubの正規表現は使い方が違うのでしょうか? 後者のgsubはどうすべきでしょう?
331 :
デフォルトの名無しさん
2016/12/06(火) 15:02:38.98 ID:ETIaxsXC
先ほどのソースのまま 正規表現の後に p $& とすると 139 134 nil nil nilとなったので nilを表示しないようにしたい。
332 :
デフォルトの名無しさん
2016/12/06(火) 15:05:16.71 ID:D3xfQ035
しないようにすれ
333 :
デフォルトの名無しさん
2016/12/06(火) 15:08:06.62 ID:ui9UYxht
よくわからんが原因は他じゃないかな?
下のでちゃんと動くよ。
word1 = /<td align="center"><a href="http:\/\/.*\/" target="_blank">/
line='<td align="center"><a href="
http://2ch.net/" ; target="_blank">置換です</a></td>'
puts line=line.gsub(word1,"きゃあー")
334 :
デフォルトの名無しさん
2016/12/06(火) 15:08:32.74 ID:ETIaxsXC
if文に変えたらできました! ありがとうございました!
335 :
デフォルトの名無しさん
2016/12/06(火) 15:20:29.06 ID:my75alTQ
>>330 上にもあるが普通は欲しい部分を抜き出してから修飾する
require 'open-uri'
html = open('
http://qiita.com/tags/Ruby').read html.scan(/<div class="ItemLink__title"><a.+?>(.+?)<\/a>/).each{|v| puts v}
#結果:
CSVさえあればいい!形態素解析→単語感情極性対応表で超お手軽ネガポジ分析♪ (with Rails)
MailCatcherでメール送信をテスト
【Rails】ぼくのかんがえたさいきょうの設定(rails newそのあとに)
Rails:Service層を運用して良かったところ、悪かったところ
Rails スクレイピング手法 Mechanizeの使い方
Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳)
Ajaxでセレクトボックスの中身が動的に変わるRailsアプリの作り方
初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」
...
こっちのほうが絶対に見通しがいいし作成途中での確認もカンタン
んでさらっと .+? を使ってるが「正規表現の最短マッチ」について調べるといい
わけわからん状態のところを自力でひとつづつ潰していくのだ
336 :
デフォルトの名無しさん
2016/12/06(火) 16:14:26.50 ID:0+futo+K
有難うございます。 word1 = /<td align="center"><a href="http:\/\/.*\/" target="_blank">/ file.each_line do |line| (中略) line = line.gsub(word1,'【') puts line if line =~ /【/ これでできました。原因は他にもありました。
337 :
デフォルトの名無しさん
2016/12/06(火) 22:40:43.49 ID:N07Fi8es
>>321-323 再現性の無いバグなら、マルチスレッドのライブラリを使っているとか、
ポインタが想定外のアドレスを指しているとか
>>325-326 2chのバグだろう
書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?
それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
>>326 1行ずつループする必要はない
File.read('number.txt').scan(/^13\d$/) do |matched|
p matched # ここに処理を書く
end
338 :
デフォルトの名無しさん
2016/12/06(火) 23:36:56.03 ID:irhz0xDF
339 :
デフォルトの名無しさん
2016/12/06(火) 23:57:34.34 ID:Ke9ZeJQj
>>338 問題が分からんけど、正規表現での + は特殊文字だから + という文字に一致させるにはエスケープが必要
というか、if c == '+' でいいんじゃないの?
340 :
デフォルトの名無しさん
2016/12/06(火) 23:59:40.47 ID:Ke9ZeJQj
>>338 あと、a,b,c = gets.split.map(&:to_i) とすると、全部 to_i しようとするから '+' も to_i しておかしなことになるよ
341 :
デフォルトの名無しさん
2016/12/07(水) 01:37:01.20 ID:dh118EuJ
画像で申し訳ないけど問題はこんなん
ようは半角スペース区切りで、数字2つと+か−を入力
+なら前者の数字を足し算、−なら引き算をして出力しろっていう問題
修正したけど何故か−側の答えしか出なくてワロタ……
なんで+判定してくれんのだ
a,b,c = gets.split(' ').map(&:to_i)
d = a + b
e = a - b
if c == /\+/ then
puts d
else
puts e
end
342 :
デフォルトの名無しさん
2016/12/07(水) 04:45:38.63 ID:qM0eFzSC
>>341 https://docs.ruby-lang.org/ja/latest/method/String/i/to_i.html 整数とみなせない文字があればそこまでを変換対象とします。 変換対象が空文字列であれば 0 を返します。
p "0x11".to_i # => 0
p "".to_i # => 0
つまり
> "+".to_i
=> 0
> "-".to_i
=> 0
> a,b,c="1 2 +".split(' ').map(&:to_i)
=> [1, 2, 0]
> a,b,c="1 2 -".split(' ').map(&:to_i)
=> [1, 2, 0]
> puts /\+/
(?-mix:\+)
> puts Regexp.new(/\+/)
(?-mix:\+)
> 0 == /\+/
=> false
> 0 == Regexp.new(/\+/)
=> false
こういうこと
343 :
デフォルトの名無しさん
2016/12/07(水) 07:11:33.83 ID:4ygr9k/C
344 :
デフォルトの名無しさん
2016/12/07(水) 07:37:56.24 ID:9RayTpny
>>339 、
>>340 、
>>340 ありがとうございます、やっと出来ました!
a,b,c= gets.split
d = a.to_i+b.to_i
e = a.to_i-b.to_i
if c == '+' then
puts d
elsif
puts e
end
入力を文字列で受け取ってから、それを数値として扱うようにしてから計算
最後に出力っていう形にしたら成功しました!
改めてgets.split.map(&:to_i)や.to_iの意味を理解できて良い勉強になりました
345 :
デフォルトの名無しさん
2016/12/07(水) 16:18:08.81 ID:xs1sI7sQ
オライリのディープラーニング本進めてるがバッチ処理のあたりから ようわからん。 数学は好きなんだけどプログラミング特有のテクニックになると どうも飲み込みづらい。
346 :
デフォルトの名無しさん
2016/12/07(水) 16:35:10.61 ID:aZJac4xC
オライリーのDL本はPythonじゃねーの?
347 :
デフォルトの名無しさん
2016/12/07(水) 22:34:39.98 ID:vMVuhNA3
Rubyでディープラーニングなんか遅過ぎて勉強以前の問題だと思うけど numpyと比べたら軽く数桁違うだろ
348 :
デフォルトの名無しさん
2016/12/07(水) 23:37:57.91 ID:4ygr9k/C
>>347 勉強のために入るなら使い慣れた言語ってのは普通にある選択肢だと思うけどなー
知らない分野と知らない言語のダブルに対処するより効率が高いだろうし
349 :
デフォルトの名無しさん
2016/12/08(木) 03:46:35.74 ID:WR2cMfp2
本の言語に合わせた方が分かりやすくね? その言語知らないと翻訳できないんじゃね?
350 :
デフォルトの名無しさん
2016/12/08(木) 07:25:28.39 ID:/aGxLpEu
言語に気を取られるのは無駄ってどっちかというとPython的な理屈だしなあ Rubyと違ってシンプルだからそんなに難しく考える必要はない
351 :
デフォルトの名無しさん
2016/12/08(木) 09:33:01.89 ID:u0pmvICB
直也:.NET CoreというかC#って型があって、しかもサーバーサイドも書けるじゃないですか。Linuxでやってた人たちはずっとスクリプト言語使ってて、 Rubyとか型がない言語でサーバーサイド書いてることに疲れてきちゃってるんですよね。 ある程度の規模のものではサーバーサイドも型がある言語で書きたいと思って、 ScalaとかJava 8をやってみたんだけど、どの言語もちょっとバランスが悪いんですよね。 Scalaはプログラマ寄りすぎるし、Javaはコンサバすぎる。サーバーサイドSwiftもとがりすぎてるし。 実績があって型がある言語ってC#なんですよね。そのC#がLinuxで使えるのは大きいんですよね。 だから、ワンチャンあるなって。あとは市場が評価するかどうかなんですよね。 バランスはいいと思います。それがWindowsだけでなくMacでも使えるようになったのは本当に大きいですし。
352 :
デフォルトの名無しさん
2016/12/08(木) 09:49:01.09 ID:V2tLN3UQ
Racketみたいにpythonのnumpyとかそのまま流用できる方法はrubyにはないのですか?
353 :
デフォルトの名無しさん
2016/12/08(木) 21:28:42.10 ID:6kXtynY2
初めて1日目の初心者なんですけど直し方がわかりません Ocraでexe化して起動するとBad signature in executable.ってエラーが出ます windows10でRubyのバージョンは最新版です ちなみにexe化したファイルのソースは # encoding: Shift_JIS print
354 :
353
2016/12/08(木) 21:43:20.44 ID:6kXtynY2
途中送信すみません # encoding: Shift_JIS print てすと です。
355 :
デフォルトの名無しさん
2016/12/08(木) 22:30:09.38 ID:HERlhtNF
どこでそのエラーが発生したのか分からんけど ファイル名:353.rb 中身は以下だけ printf ("てすと") この状態でターミナルから>ocra 353.rb これで特にエラーも無くexeして、実行するとウィンドウが起動してテストって表示されて終了する win7でRubyのバージョンも2.2.4だから状況違うけど 俺も初心者だから良く分からんぞい
356 :
353
2016/12/08(木) 22:37:38.67 ID:6kXtynY2
DevKit入れたら自決しました
357 :
デフォルトの名無しさん
2016/12/09(金) 00:54:47.09 ID:GS4b0ME0
死ぬんじゃない
358 :
デフォルトの名無しさん
2016/12/09(金) 04:36:22.37 ID:VazcIIHJ
macでrb拡張子(スクリプト)をターミナルで実行するにはどうすればいいですか? homebrewやRuby on Rails を入れる必要がありますか?
359 :
デフォルトの名無しさん
2016/12/09(金) 07:09:25.41 ID:IAKedM2U
バージョンを問わないなら最初から入ってるだろ ruby myrubyscript.rb
360 :
デフォルトの名無しさん
2016/12/09(金) 07:15:38.30 ID:JZme2NZr
irb(main):001:0> a,b,c = [1,2],3 => [[1, 2], 3] irb(main):002:0> a => [1, 2] irb(main):003:0> b => 3 irb(main):004:0> c => nil irb(main):005:0> a,b,c = [[1,2],3] => [[1, 2], 3] irb(main):006:0> a => [1, 2] irb(main):007:0> b => 3 irb(main):008:0> c => nil これって、どのように理解したらいいですかね?
361 :
デフォルトの名無しさん
2016/12/09(金) 07:35:31.81 ID:ESs2BvJq
>>360 [[1, 2], 3] は [1, 2] と 3 の2つの要素からなる配列
だから a, b, c = [[1, 2], 3] とすると a には1要素目の [1, 2] が入り、
b には2要素目の 3 が入り、c は3要素目がないので nil が入る
362 :
デフォルトの名無しさん
2016/12/09(金) 07:39:07.21 ID:ESs2BvJq
363 :
デフォルトの名無しさん
2016/12/09(金) 08:04:59.41 ID:CktcRLbu
だから理屈としては「配列リテラルの多重代入は行わない方がよい」になる こんなことでエラーにしたくないので色々なパターンを頑張って実装したんだが その結果誰にも読み解けないものができてしまった
364 :
デフォルトの名無しさん
2016/12/09(金) 10:24:20.17 ID:p9V2Jelw
マニュアルにある通りだとおもうけど? foo, bar = [1, 2] # foo = 1; bar = 2 foo, bar = 1, 2 # foo = 1; bar = 2 (foo, bar), baz = [1, 2], 3 # foo = 1; bar = 2; baz = 3
365 :
デフォルトの名無しさん
2016/12/09(金) 10:49:11.49 ID:FAhbp1DA
class Lottery result=["大吉", "中吉", "小吉", "凶", "大凶"] def roll num=rand(5) return num end print result[roll],"です。\n" end Lottery.new.roll 上記コードでundefined local variable or method `roll' for Lottery:Class (NameError)が発生します。 原因がどこにあるか教えてください。
366 :
デフォルトの名無しさん
2016/12/09(金) 11:23:52.82 ID:6FftK3xp
>>365 class...endの中においてdefでふつーに定義するメソッドは「そのクラスのインスタンスメソッド」となる
これは「そのクラスのインスタンス(=オブジェクト)」に属しているため、インスタンスを生成していないclass定義の中から呼び出すことはできない
……というような説明で理解できるならそもそもそんなことしねーよというのはまあその通りではある
とりあえずは
「クラス定義の中ではそこで定義したインスタンスメソッドを使うことはできない」
「クラス定義の中では"地の文"を書いてはいけない」
というふうに思っておくといいよ
class Lottery
# クラス定義の中で大文字で始まると"クラス定数"。くわしくはぐぐれ
RESULT=["大吉", "中吉", "小吉", "凶", "大凶"]
def dice
num=rand(5)
return num
end
# データ生成と表示はメソッドを分ける
# あと画面表示にputsメソッドを紹介してない参考書は焚書で
def roll
puts RESULT[dice]+"です"
end
end
Lottery.new.roll
367 :
デフォルトの名無しさん
2016/12/09(金) 11:46:46.57 ID:FAhbp1DA
>>366 解説ありがとうございます。
>「そのクラスのインスタンス(=オブジェクト)」に属しているため、インスタンスを生成していないclass定義の中から呼び出すことはできない
ここをそもそも知らなかったためにどはまりだったので、助かりました。
># クラス定義の中で大文字で始まると"クラス定数"
定数じゃないとエラーが出るんですね。勉強不足でした。
># データ生成と表示はメソッドを分ける
そこそこ勉強しているつもりですが、まだまだ初心者を抜け出せない状態です。実際のところ相当煮詰まっている状態でして、こういった実装時の作法?
みたいなものを知りません。おすすめの書籍などありませんでしょうか。
># あと画面表示にputsメソッドを紹介してない参考書は焚書で
焚書ですか…
368 :
デフォルトの名無しさん
2016/12/09(金) 12:47:27.53 ID:Kfw6K1eC
Rubyの基礎を学んでる最中にRubyのお作法も別途学ぼうとすると息苦しくてつまんないと思う とりあえずはその手元にある今使ってるやつで学んでみたらどうだろうどうかしら 矯正はあとからでもできるし無駄や遠回りはある程度経験しておくとその後なんとしても無駄や不作法を避ける糧になるよw
369 :
デフォルトの名無しさん
2016/12/09(金) 13:55:22.62 ID:FAhbp1DA
>>367 了解しました。まだ基礎力が定着していないのに分不相応でしたね。ですが、最近なんかDRYが多くて
作成したコードが不細工だなあと感じるようになり、うまくすっきりしたコードは書けないかなと思ったものですから。
まあ、とにかく基礎的・基本的なことに集中しようと思います。
370 :
デフォルトの名無しさん
2016/12/09(金) 20:21:49.49 ID:EaN/YLKK
基本の文法書は、 たのしいRuby 第5版、2016 その次のレベルは、プロ必須本の、 Effective Ruby、2015 バグが起きにくい、安全で効率的なコーディングと、 間違いやすいポイントを解説
371 :
デフォルトの名無しさん
2016/12/09(金) 22:49:00.14 ID:pEg3v2QU
たのしいRubyは何とか読みきれたけど 次に買ったRuby on Rails4 アプリケーションプログラミングは内容が濃すぎて挫折してたから Effective Rubyを買ってみようかな……
372 :
デフォルトの名無しさん
2016/12/09(金) 23:02:53.80 ID:EaN/YLKK
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015 これの方が、わかりやすい
373 :
デフォルトの名無しさん
2016/12/09(金) 23:06:00.61 ID:IAKedM2U
>>371 伸び悩んだら他の言語に浮気するのがおすすめ
気分転換とかじゃなくて本質が見えるようになる
戻ってきたら驚くほど分かるようになってる
374 :
デフォルトの名無しさん
2016/12/09(金) 23:28:07.12 ID:EaN/YLKK
それなら、12/22 発売の「みんなのPython 第4版」 この本は「たのしいRuby」と表裏一体だから、スラスラ読める
375 :
360
2016/12/10(土) 00:08:14.85 ID:SQghVBCH
遅レスだがありがとう。
376 :
デフォルトの名無しさん
2016/12/10(土) 00:16:10.17 ID:7eWDkV7Q
本を読んで勉強したのは最初の言語だけだなー(C++だったな) あとはネットで情報を漁ってとりあえず書いてみてってのを繰り返して覚えてるな いくらガベージコレクタがどうの型がどうのと言われても、やはりC++のような メモリ管理や型についての基礎知識は持っておいた方がいいと思うのは老害の戯言かなー
377 :
デフォルトの名無しさん
2016/12/10(土) 06:45:40.85 ID:F6sTBWuO
それはまちがいなく老害
378 :
デフォルトの名無しさん
2016/12/10(土) 11:45:02.49 ID:qQjpy7Dv
rubyにも型はある 型は意識しておいた方が良い
379 :
デフォルトの名無しさん
2016/12/10(土) 17:29:55.11 ID:ffTfSgqi
今時メモリ管理とか勉強が必要になるぐらいまでのめり込んでいる人は 自分で読む本がわかっている頃だろうな。
380 :
デフォルトの名無しさん
2016/12/10(土) 17:42:31.42 ID:qQjpy7Dv
rubyでメモリ管理いちいち気にする香具師はアホ
381 :
デフォルトの名無しさん
2016/12/10(土) 17:45:12.03 ID:eWdy/g06
老害っていうより、プログラマとしてのセンスが悪いと思う
382 :
デフォルトの名無しさん
2016/12/10(土) 17:57:25.90 ID:dShDNVDG
その言語でのプログラム作成者の80%が一生使わず残りの90%も初年度には触れないようなものの知識を初学者の100%に求めるのは害悪
383 :
デフォルトの名無しさん
2016/12/10(土) 17:57:30.76 ID:02ejXKtR
いまでもRailsで普通にやるとメモリバカ食いするケースの対処が必要だったり GCの実行頻度を考慮して設計する必要があったりはするよ 安易に不必要だと決めつけるのは考えが足りない子だね
384 :
デフォルトの名無しさん
2016/12/10(土) 18:05:28.08 ID:ck8bDMeh
もちろん型やメモリ管理など内部の仕組みは 理解できている方が良いが初期の学習では不要
385 :
デフォルトの名無しさん
2016/12/10(土) 19:21:30.99 ID:we+CUvc2
人によっては内部の動作を知りたいって子もいるから そういう子には教えてもいいと思うけど 相手を見ないで全員に教えても意味はないやりたい事はみな違うから
386 :
デフォルトの名無しさん
2016/12/11(日) 23:33:44.06 ID:BA+Tsrf4
つまんね
387 :
デフォルトの名無しさん
2016/12/11(日) 23:36:27.60 ID:sXnmAsK+
gem installで何かを入れようとしても ERROR: While executing gem ... (URI::InvalidURIError) bad URI(is not URI?): gem update --systemしようとしても ERROR: While executing gem ... (URI::InvalidURIError) bad URI(is not URI?): となって出来ないんですけど 原因わかりますか? rubyは2.3.3 gemは2.5.2 OSはwin10です
388 :
デフォルトの名無しさん
2016/12/11(日) 23:52:42.43 ID:9ThvSwmQ
389 :
デフォルトの名無しさん
2016/12/11(日) 23:57:26.28 ID:sXnmAsK+
390 :
デフォルトの名無しさん
2016/12/12(月) 03:14:04.62 ID:QY0nCTMm
>>387 AddTrustExternalCARoot-2048.pem を最新の物にする。
DL場所や方法は検索すればすぐ見つかる。
391 :
デフォルトの名無しさん
2016/12/12(月) 14:54:05.30 ID:Eai/X/NY
>>390 rubygems-update-2.6.8.gemを入れてみたけど改善しませんでした
392 :
デフォルトの名無しさん
2016/12/12(月) 15:20:46.65 ID:Eai/X/NY
Ruby 2.2.6に変えたら何故か解決しました
393 :
デフォルトの名無しさん
2016/12/13(火) 15:12:14.55 ID:OjWn7cVV
テストが通らない・・・
どこが間違っているかわかる方いたらお願いします。
ランクC Paiza芦屋川雛乃からのヘルプ依頼
https://paiza.jp/moshijo/ a = gets.chomp.split(" ")
s = gets.chomp
t = gets.chomp
r =""
if s == "decode"
for i in 0...t.size
for u in 0...a.size
if t[i] == a[u]
r[i] = u.to_s
end
end
end
puts r.to_i
elsif s == "encode"
for i in 0...t.size
c = t[i].to_i
t[i] = a[c]
end
puts t.to_i
end
394 :
デフォルトの名無しさん
2016/12/13(火) 15:42:27.45 ID:wETuuVVa
r = "" がおかしいんじゃないかな
395 :
デフォルトの名無しさん
2016/12/13(火) 18:01:40.46 ID:nznhQA15
Rubyで解きましたっていってこのスクリプトが返ってきたらへにょーんってなるな
396 :
デフォルトの名無しさん
2016/12/13(火) 20:42:28.70 ID:mtOpDsT/
r[i] = u.to_s rが配列なら、[ ]が付いていない、以下はおかしい r ="" puts r.to_i c = t[i].to_i t[i] = a[c] tが配列なら、[ ]が付いていない、以下はおかしい puts t.to_i 型が複数を扱うコンテナなのか、単体なのか、意識しろ
397 :
デフォルトの名無しさん
2016/12/14(水) 07:41:49.95 ID:bcNQ7Ev0
意識高い系
398 :
デフォルトの名無しさん
2016/12/14(水) 08:02:24.73 ID:Q/TaGcT0
>>395 対象のRubyでeachが実装されているとは限らない
399 :
デフォルトの名無しさん
2016/12/14(水) 08:18:08.95 ID:fDAOl6vn
w
400 :
デフォルトの名無しさん
2016/12/14(水) 08:27:07.65 ID:2yTcGsTl
今のRubyの想定バージョンっていくつなんだろうね まだ1.8.6?
401 :
デフォルトの名無しさん
2016/12/14(水) 15:12:01.78 ID:a66Br6Ed
402 :
デフォルトの名無しさん
2016/12/14(水) 15:16:14.96 ID:4jpqupHX
403 :
デフォルトの名無しさん
2016/12/14(水) 17:49:04.08 ID:obMYgrm6
ruby初心者です クラスにアクセサ実装しました 正の整数しか受け付けさせません それ以外は例外で弾こうと思います どの例外がいいですか?
404 :
デフォルトの名無しさん
2016/12/14(水) 18:01:58.62 ID:bWT0nkJt
>>403 何でもいい
その手の例外は出たらバグなのでキャッチされることは無いはず
誤ってキャッチされてしまう可能性があるような紛らわしいものでなければOK
405 :
デフォルトの名無しさん
2016/12/14(水) 18:19:07.06 ID:po7ivxZl
オブジェクトとしては間違ってないんだけど処理都合で弾きたい引数が来た場合はArgumentError
オブジェクトや持ってるメソッドからして間違ってる感じのが来た場合はTypeError
ということで第三者公開するライブラリならArgumentErrorだとわかりよい
が、おおむね
>>404 なのでRuntimeErrorでもいいよ
406 :
デフォルトの名無しさん
2016/12/14(水) 21:11:00.93 ID:US7iqqFk
特別なアレならStandardError継承して独自の例外投げとけば良いのでは