プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/
るりまサーチ (リファレンス検索)
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 67
1デフォルトの名無しさん (ワッチョイ b72c-yePO)
2020/12/25(金) 04:24:27.68ID:aa9Khe9z055デフォルトの名無しさん (オッペケ Sr7b-3C30)
2021/01/24(日) 22:13:50.30ID:kU4Polklr >>54
hoge = Data.new('name', id: 0, data1: 1, data2: 2)
ivs = hoge.instance_variables
ivs.each{|iv| puts "%s => %p" % [iv, hoge.instance_variable_get(iv)]}
# =>
name => "name"
id => 0
data1 => 1
data2 => 2
hoge = Data.new('name', id: 0, data1: 1, data2: 2)
ivs = hoge.instance_variables
ivs.each{|iv| puts "%s => %p" % [iv, hoge.instance_variable_get(iv)]}
# =>
name => "name"
id => 0
data1 => 1
data2 => 2
56デフォルトの名無しさん (ワッチョイ 7f2c-8PYP)
2021/01/25(月) 17:06:01.79ID:+q31tGtg0 黒魔術・メタプログラミングで、よく見る
インスタンス変数用のinstance_variables、
クラス/モジュールには、クラス変数(@@these_things)用のclass_variables
インスタンス変数用のinstance_variables、
クラス/モジュールには、クラス変数(@@these_things)用のclass_variables
57デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2021/01/25(月) 18:43:13.07ID:co/Rkwpa0 >>54
そういう用途はStruct使うといいんでない?
Foo = Struct.new("Foo", :name, :id, :data1, :data2)
foo = Foo.new("foo", 1, "123", "456")
foo.to_h.keys
#=> [:name, :id, :data1, :data2]
foo.to_h.keys.to_csv
#=> "name,id,data1,data2¥n"
そういう用途はStruct使うといいんでない?
Foo = Struct.new("Foo", :name, :id, :data1, :data2)
foo = Foo.new("foo", 1, "123", "456")
foo.to_h.keys
#=> [:name, :id, :data1, :data2]
foo.to_h.keys.to_csv
#=> "name,id,data1,data2¥n"
58デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2021/01/25(月) 18:47:31.66ID:co/Rkwpa0 Structは初期化時の引数の数が一致してなくてもエラーにならずにnilがデフォルト値になる
それがいやな場合は継承してコンストラクタを上書き
class Bar < Struct.new("Bar", :name, :id, :data1, :data2)
def initialize(name, id, data1=nil, data2=nil)
super
end
end
それがいやな場合は継承してコンストラクタを上書き
class Bar < Struct.new("Bar", :name, :id, :data1, :data2)
def initialize(name, id, data1=nil, data2=nil)
super
end
end
59デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 04:39:32.60ID:sK+sAxFfM 質問させてください。
以下のようなデータがあるとして。
data = {
"id": "price_xxxxxxx",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1234567,
"currency": "usd",
"metadata": {
"commission": "2"
}
}
このデータを p data.metadata.commission とすると4が表示されるようにしたいです。
どうやって変換すればいいでしょうか?
以下のようなデータがあるとして。
data = {
"id": "price_xxxxxxx",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1234567,
"currency": "usd",
"metadata": {
"commission": "2"
}
}
このデータを p data.metadata.commission とすると4が表示されるようにしたいです。
どうやって変換すればいいでしょうか?
60デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 04:40:41.40ID:sK+sAxFfM >>59
すいません、4じゃなくて2でした。。
すいません、4じゃなくて2でした。。
61デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/01/29(金) 13:59:12.19ID:IOP7xwlv0 普通にブラケットでアクセスするかdigしたほうがいい気がするが
どうしてもドットでアクセスしたいなら再帰的にOpenStructに変換する
data = JSON.parse(data.to_json, object_class: OpenStruct)
data.metadata.commission
#=> "2"
どうしてもドットでアクセスしたいなら再帰的にOpenStructに変換する
data = JSON.parse(data.to_json, object_class: OpenStruct)
data.metadata.commission
#=> "2"
62デフォルトの名無しさん (ワッチョイ 662c-CS/l)
2021/01/29(金) 14:31:44.23ID:MVM9RsSY0 ハッシュだから、hash.x.xyz は無理だろ
Effective Ruby の項目10 に書いてある、
構造物はハッシュじゃなくて、クラス・Struct を使おうというやつだろ
ただ、その都度、構造が変わるものは、ハッシュの方が良いし、
構造がネストしている場合も難しい
require "json"
json = <<'JSON'
{ "a": "abc",
"x": {
"xyz": "2" }}
JSON
p hash = JSON.parse( json ) #=> {"a"=>"abc", "x"=>{"xyz"=>"2"}}
p hash[ "x" ][ "xyz" ] #=> 2
Effective Ruby の項目10 に書いてある、
構造物はハッシュじゃなくて、クラス・Struct を使おうというやつだろ
ただ、その都度、構造が変わるものは、ハッシュの方が良いし、
構造がネストしている場合も難しい
require "json"
json = <<'JSON'
{ "a": "abc",
"x": {
"xyz": "2" }}
JSON
p hash = JSON.parse( json ) #=> {"a"=>"abc", "x"=>{"xyz"=>"2"}}
p hash[ "x" ][ "xyz" ] #=> 2
63デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 14:57:50.28ID:sK+sAxFfM64デフォルトの名無しさん (オッペケ Srbd-+Ul7)
2021/01/29(金) 21:09:33.54ID:/bfQuQp2r >>59
def hoge!(obj)
return unless Hash === obj
def obj.method_missing(name, *_) = self[name]
obj.each_value{Hash === _1 && hoge!(_1)}
end
hoge!(data)
p data.metadata.commission # => "2"
# 冗談だけど
def hoge!(obj)
return unless Hash === obj
def obj.method_missing(name, *_) = self[name]
obj.each_value{Hash === _1 && hoge!(_1)}
end
hoge!(data)
p data.metadata.commission # => "2"
# 冗談だけど
65デフォルトの名無しさん (ワッチョイ 6a06-fCoL)
2021/02/03(水) 22:28:17.16ID:S1/u+juE0 >>54です。
アドバイスありがとうございます。
私も色々と調べたのですが、オブジェクトを1回作らないと難しいかもしれませんね。
仮にデータが全くなかった場合、csvのヘッダーのみ記述されたcsvファイルを出力したいと考えています。
しかし、データが全くないと、オブジェクトが無いため、オブジェクトからプロパティを取得する方法が使えません。
もちろん、ダミーのオブジェクトを作ればOKですが、少々不自然かと思いました。
Structは知らなかったので、勉強させていただきます。
ありがとうございました。
アドバイスありがとうございます。
私も色々と調べたのですが、オブジェクトを1回作らないと難しいかもしれませんね。
仮にデータが全くなかった場合、csvのヘッダーのみ記述されたcsvファイルを出力したいと考えています。
しかし、データが全くないと、オブジェクトが無いため、オブジェクトからプロパティを取得する方法が使えません。
もちろん、ダミーのオブジェクトを作ればOKですが、少々不自然かと思いました。
Structは知らなかったので、勉強させていただきます。
ありがとうございました。
66デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/02/03(水) 23:01:53.55ID:q3Uucr840 Struct.membersでいいんじゃないの?
67デフォルトの名無しさん (アウアウウー Sa9b-EKhR)
2021/02/07(日) 21:57:18.80ID:RWoPy8BIa https://twitter.com/yukihiro_matz/status/1358048924141973504?s=20
> 世界一周クルーズの広告が表示され、妻と「コロナ収まったら行きたいね」
世界一周は最低500万、上は数千万にもなる。
うっかり金持ち自慢をしてしまう…
https://twitter.com/5chan_nel (5ch newer account)
> 世界一周クルーズの広告が表示され、妻と「コロナ収まったら行きたいね」
世界一周は最低500万、上は数千万にもなる。
うっかり金持ち自慢をしてしまう…
https://twitter.com/5chan_nel (5ch newer account)
68デフォルトの名無しさん (ワッチョイ 9286-yOCM)
2021/02/12(金) 15:35:22.83ID:Ru8WMsS80 インストールしなくていい機能縮小版rubyを作って、awkを代替えできるようにする
というのはどうでしょう
というのはどうでしょう
69デフォルトの名無しさん (ワッチョイ 8333-cxxd)
2021/02/12(金) 19:50:07.01ID:74skEOdG0 >>68
そんな用途なら、互換性が期待できないRubyよりも、信頼できるPerlのほうがええやろ。
そんな用途なら、互換性が期待できないRubyよりも、信頼できるPerlのほうがええやろ。
70デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/15(月) 00:33:16.20ID:KKKRaaGF0 すまん唐突だけど質問させて eql口頭でってなんで読んだら良いの?
71デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/15(月) 00:34:14.29ID:KKKRaaGF0 ミスった
eqlって口頭では何て発音したら良いの? です
eqlって口頭では何て発音したら良いの? です
72デフォルトの名無しさん (オッペケ Src7-JgCO)
2021/02/15(月) 11:38:51.60ID:adP2s3N/r イコールって読んでる
equal?とeql?が入り乱れて使われてるところはしらんが。
まぁrubyしてるならequalとeql両方知ってるはずだし短いイコールの方、とかでも伝わるんじゃ
equal?とeql?が入り乱れて使われてるところはしらんが。
まぁrubyしてるならequalとeql両方知ってるはずだし短いイコールの方、とかでも伝わるんじゃ
73デフォルトの名無しさん (アウアウウー Sac3-/q7V)
2021/02/15(月) 13:06:36.01ID:2czEo7/ia イーキュー
イーキューエル
イコール
イーキューエル
イコール
74デフォルトの名無しさん (オッペケ Src7-gtE8)
2021/02/15(月) 21:15:47.96ID:oDLt9usUr イークワル
75デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/16(火) 21:32:31.57ID:fxt1OOtg076デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 22:13:45.11ID:fxt1OOtg0 すみません、質問です
hash生成時に、
str={"key1" = "val1"}
ではエラーになる理由を教えてください。
hash生成時に、
str={"key1" = "val1"}
ではエラーになる理由を教えてください。
77デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/16(火) 22:25:37.65ID:F9q4wvox0 p hash = { "a" => "b" } #=> {"a"=>"b"}
全角の{}を使うな。
文字列以外は半角英数字のみ
全角の{}を使うな。
文字列以外は半角英数字のみ
78デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 22:28:16.05ID:fxt1OOtg0 >>77
すみません、携帯からで全角と半角を間違えてしまいました。半角として見てくださいm(_ _)m
すみません、携帯からで全角と半角を間違えてしまいました。半角として見てくださいm(_ _)m
7977 (ワッチョイ 162c-FDiY)
2021/02/16(火) 23:01:49.84ID:F9q4wvox0 p h_1 = { "a" => "b" } #=> {"a"=>"b"}
p h_2 = { "あ": "い" } #=> {:あ=>"い"}
p h_3 = { one: 1, "two": "2" } #=> {:one=>1, :two=>"2"}
新しめの書き方では、2, 3 みたいに書ける
: を使うと、文字列のキーがシンボルになる
"two": が、:two になる
one: はシンボルのまま
p h_2 = { "あ": "い" } #=> {:あ=>"い"}
p h_3 = { one: 1, "two": "2" } #=> {:one=>1, :two=>"2"}
新しめの書き方では、2, 3 みたいに書ける
: を使うと、文字列のキーがシンボルになる
"two": が、:two になる
one: はシンボルのまま
80デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 23:13:47.99ID:fxt1OOtg0 書いていただいた方法でないと生成できないのですね
丁寧な回答ありがとうございました
丁寧な回答ありがとうございました
81デフォルトの名無しさん (ワッチョイ 8333-cxxd)
2021/02/17(水) 00:25:13.96ID:p6fAds/B0 つーか、なんで「=」でいいと思ったんだか。w
82デフォルトの名無しさん (ワッチョイ bf2d-A6sh)
2021/02/20(土) 02:27:26.66ID:SWSWE4Ss0 AtCoderの解答見てると、rubyで巨大配列を扱うような時に激遅になりがちな気がする
配列アクセスの遅さなのかループの遅さなのかわからんが
配列アクセスの遅さなのかループの遅さなのかわからんが
83デフォルトの名無しさん (ワッチョイ cf2c-qRZF)
2021/02/20(土) 05:46:26.76ID:CT8193ch0 JIT があるから、1秒間で100万回ループすると、ネイティブコードにコンパイルされて、
1秒間で1,000万回ループできるようになる
1秒間で1,000万回ループできるようになる
84デフォルトの名無しさん (ワントンキン MMa7-bvMg)
2021/02/23(火) 21:47:53.55ID:QIohwxjcM irbにおいて、
def test; p test; end
とだけ打ち込みました。
すると、Enumerable.methods.grep(/test/) => [:test]
が得られます。
何故、testメソッドが勝手にEnumerableのメソッドになるのか教えていただけないでしょうか。
環境は
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
です。
def test; p test; end
とだけ打ち込みました。
すると、Enumerable.methods.grep(/test/) => [:test]
が得られます。
何故、testメソッドが勝手にEnumerableのメソッドになるのか教えていただけないでしょうか。
環境は
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
です。
85デフォルトの名無しさん (オッペケ Sr07-VXi+)
2021/02/23(火) 22:02:57.19ID:IEGWDKD5r https://docs.ruby-lang.org/ja/latest/class/main.html
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
って思ったけどこっちの環境でもprivateにならないな
はて、何故でしょう
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
って思ったけどこっちの環境でもprivateにならないな
はて、何故でしょう
86デフォルトの名無しさん (ワッチョイ 6f8c-WTU+)
2021/02/24(水) 02:17:06.53ID:hlmSDKs+0 バグじゃね?
87デフォルトの名無しさん (ワッチョイ cf2c-QclQ)
2021/02/24(水) 02:20:59.00ID:YN61hHjA0 ruby 2.6.6 [x86_64-linux] なら、
def test; p test; end
p Enumerable.methods.grep(/test/) #=> [ ]
def test; p test; end
p Enumerable.methods.grep(/test/) #=> [ ]
8887 (ワッチョイ cf2c-QclQ)
2021/02/24(水) 02:26:45.21ID:YN61hHjA0 p test が文法エラーになるのでは?
test という識別子が存在しないから
test という識別子が存在しないから
89デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
2021/02/24(水) 07:33:53.13ID:UUqFv7Fhp 0084です。
def test; p test; end
ではなく、
def test; p “test”; end
でした。
大変申し訳ありませんでした。
ほかのメソッドでも同じような動きを確認しています。今日は立て込んでしまっているので、追って別のメソッドの例も提示します。
def test; p test; end
ではなく、
def test; p “test”; end
でした。
大変申し訳ありませんでした。
ほかのメソッドでも同じような動きを確認しています。今日は立て込んでしまっているので、追って別のメソッドの例も提示します。
90デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
2021/02/24(水) 07:38:08.91ID:UUqFv7Fhp >>0085さん、確認ありがとうございます。
私は初心者なので、以下の認識で正しいか、何か例外があるのか不安でお尋ねしました。認識は正しかったようですので、もう少し調べてみます。
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
私は初心者なので、以下の認識で正しいか、何か例外があるのか不安でお尋ねしました。認識は正しかったようですので、もう少し調べてみます。
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
91デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/24(水) 10:21:05.87ID:a7gl+o1qM privateかどうかをどうやって確認したの?
要再現コード
要再現コード
92デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2021/02/24(水) 11:26:34.15ID:9gaCPeun0 環境を作り直したほうがよさそう
93デフォルトの名無しさん (ワッチョイ 6f8c-63U7)
2021/02/24(水) 12:25:28.67ID:hlmSDKs+0 ruby 2.6 => [ ]
ruby 2.7 => [:test]
ruby 3.0 => [ ]
ruby 2.7 => [:test]
ruby 3.0 => [ ]
94デフォルトの名無しさん (ワッチョイ 6f8c-63U7)
2021/02/24(水) 12:35:04.10ID:hlmSDKs+0 irb(main):001:0> def foo; p "Foo!" end
=> :foo
irb(main):002:0> "abc".foo
"Foo!"
=> "Foo!"
irb(main):003:0> 3.14.foo
"Foo!"
=> "Foo!"
irb(main):004:0> [].foo
"Foo!"
=> "Foo!"
=> :foo
irb(main):002:0> "abc".foo
"Foo!"
=> "Foo!"
irb(main):003:0> 3.14.foo
"Foo!"
=> "Foo!"
irb(main):004:0> [].foo
"Foo!"
=> "Foo!"
95デフォルトの名無しさん (ワントンキン MM9f-bvMg)
2021/02/24(水) 20:33:38.12ID:p2P+ZlS6M 90です。
パソコンを再起動して、.irb_historyをtouchで初期化したのち、
以下を実行しても同じ結果でした。
irb(main):001:0> def test; p "test"; end
=> :test
irb(main):002:0> Enumerable.methods.grep(/test/)
=> [:test]
irb(main):010:0> exit
$ rbenv -v
rbenv 1.1.2
$ rbenv versions
system
* 2.7.1 (set by /Users/someone/.rbenv/version)
別のメソッドも作ってみましたが、結果は同じでした。
irb(main):001:1* def mul(a,b)
irb(main):002:1* a*b
irb(main):003:0> end
=> :mul
irb(main):004:0> Enumerable.methods.grep(/mul/)
=> [:mul]
irb(main):006:0> exit
$ irb
irb(main):001:0> Enumerable.methods.grep(/mul/)
=> []
パソコンを再起動して、.irb_historyをtouchで初期化したのち、
以下を実行しても同じ結果でした。
irb(main):001:0> def test; p "test"; end
=> :test
irb(main):002:0> Enumerable.methods.grep(/test/)
=> [:test]
irb(main):010:0> exit
$ rbenv -v
rbenv 1.1.2
$ rbenv versions
system
* 2.7.1 (set by /Users/someone/.rbenv/version)
別のメソッドも作ってみましたが、結果は同じでした。
irb(main):001:1* def mul(a,b)
irb(main):002:1* a*b
irb(main):003:0> end
=> :mul
irb(main):004:0> Enumerable.methods.grep(/mul/)
=> [:mul]
irb(main):006:0> exit
$ irb
irb(main):001:0> Enumerable.methods.grep(/mul/)
=> []
96デフォルトの名無しさん (ワントンキン MM9f-bvMg)
2021/02/24(水) 20:38:46.87ID:p2P+ZlS6M 90です。
92さんがおっしゃる通り、環境を作り直すこととします。
私の疑問を受けて、再現性について試していただいた皆様、
ご協力ありがとうございました。
92さんがおっしゃる通り、環境を作り直すこととします。
私の疑問を受けて、再現性について試していただいた皆様、
ご協力ありがとうございました。
97デフォルトの名無しさん (オッペケ Sr07-VXi+)
2021/02/24(水) 20:41:24.99ID:MS8741jMr irb(とpry)でトップレベルで定義するとなんかおかしい
$ cat test.rb
def hoge; end
puts 'public: %p' % [methods.grep(/hoge/)]
puts 'private: %p' % [private_methods.grep(/hoge/)]
$ ruby -v test.rb
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
public: []
private: [:hoge]
$ irb
irb(main):001:0> load("test.rb")
public: []
private: [:hoge]
=> true
irb(main):002:0> def fuga;end
=> :fuga
irb(main):003:0> puts 'public: %p' % [methods.grep(/fuga/)]
public: [:fuga]
=> nil
irb(main):004:0> puts 'private: %p' % [private_methods.grep(/fuga/)]
private: []
=> nil
$ cat test.rb
def hoge; end
puts 'public: %p' % [methods.grep(/hoge/)]
puts 'private: %p' % [private_methods.grep(/hoge/)]
$ ruby -v test.rb
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
public: []
private: [:hoge]
$ irb
irb(main):001:0> load("test.rb")
public: []
private: [:hoge]
=> true
irb(main):002:0> def fuga;end
=> :fuga
irb(main):003:0> puts 'public: %p' % [methods.grep(/fuga/)]
public: [:fuga]
=> nil
irb(main):004:0> puts 'private: %p' % [private_methods.grep(/fuga/)]
private: []
=> nil
98デフォルトの名無しさん (ワッチョイ cf2c-QclQ)
2021/02/24(水) 21:30:57.42ID:YN61hHjA0 irb, pry は特殊なのかな?
漏れは、VSCode のCode Runner で、
選択したコード片、またはファイル全体を、右クリックメニューから実行してる
これが楽
漏れは、VSCode のCode Runner で、
選択したコード片、またはファイル全体を、右クリックメニューから実行してる
これが楽
99デフォルトの名無しさん (ワッチョイ de2c-tEpZ)
2021/02/27(土) 23:10:50.88ID:xGn+rZN00 WEB+DB vol.121
Ruby 3 特集、30 ページ分
Ruby 3 特集、30 ページ分
100デフォルトの名無しさん (ワッチョイ 692c-3kAG)
2021/03/13(土) 14:19:53.90ID:33EHGK5P0 Ruby on Rails 6 の本を書いている、2人の新刊
Go言語 ハンズオン、掌田津耶乃、2021/3/6
Elixir実践ガイド、黒田努、2021/2/5
Ruby からGoか、Elixirか、どっちへ進むべきか?
mruby, Rust もあるけど
Go言語 ハンズオン、掌田津耶乃、2021/3/6
Elixir実践ガイド、黒田努、2021/2/5
Ruby からGoか、Elixirか、どっちへ進むべきか?
mruby, Rust もあるけど
101デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 00:55:11.21ID:rggl2LA70 Ruby勉強始めたんですが
↓この部分が毎回書きづらいです
コード補完とかってないんですか?
a.map{|x|x+1}←の|x|の部分
↓この部分が毎回書きづらいです
コード補完とかってないんですか?
a.map{|x|x+1}←の|x|の部分
102デフォルトの名無しさん (ワッチョイ 1133-urfw)
2021/03/24(水) 04:11:25.02ID:itekFGrv0 vscodeとかでスニペットを利用するとか?
103デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 08:25:35.13ID:rggl2LA70 ruby開発はvscodeが多いの?
104デフォルトの名無しさん (ワッチョイ 937d-ohIf)
2021/03/24(水) 08:57:21.23ID:6ziJ9FkW0105デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 21:09:04.11ID:rggl2LA70 >>104
ありがとうございます!
ありがとうございます!
106デフォルトの名無しさん (オッペケ Sr85-NT4g)
2021/03/24(水) 21:14:35.26ID:9CHTdUsFr え、それでいいんか……
107デフォルトの名無しさん (オッペケ Sr85-azCS)
2021/03/25(木) 16:55:46.31ID:LuSagST9r プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
108デフォルトの名無しさん (ワッチョイ 292c-6umI)
2021/03/25(木) 18:17:35.84ID:18nzHvsr0 最近は全言語で、VSCode の拡張機能・Remote Container で、Docker を使う
Windows 10 Home でも、WSL2 が出来るようになった
Windows 10 Home でも、WSL2 が出来るようになった
109デフォルトの名無しさん (ワッチョイ 292c-6umI)
2021/03/25(木) 18:25:49.27ID:18nzHvsr0 Elixir でも、無名関数をキャプチャー演算子・& を使って、短く書ける
fn a, b -> a * b end
&(&1 * &2)
& &1 * &2
fn a, b -> a * b end
&(&1 * &2)
& &1 * &2
110デフォルトの名無しさん (ワッチョイ 15bb-giyE)
2021/04/02(金) 01:45:05.99ID:6d4XTvSa0 rubyでExcelへデータを出力しようとしているんですが、
どうしてもできないことがあり質問します。
ruby -v 3.0.0p0
rubyでExcelのデータを検索するときはFindを使うと思うのですが、
日付項目(シリアル値)を検索するときはどうすればいいのでしょうか。
以下をやってみましたが、検索できませんでした。
find('3/30') ・・・Excelの表示を指定
find('4321') ・・・シリアル値を指定
どうしてもできないことがあり質問します。
ruby -v 3.0.0p0
rubyでExcelのデータを検索するときはFindを使うと思うのですが、
日付項目(シリアル値)を検索するときはどうすればいいのでしょうか。
以下をやってみましたが、検索できませんでした。
find('3/30') ・・・Excelの表示を指定
find('4321') ・・・シリアル値を指定
111デフォルトの名無しさん (ブーイモ MM6b-ehU2)
2021/04/02(金) 16:34:32.49ID:NYPc8neoM >>110
使ってるライブラリが分からないと答えようがない
使ってるライブラリが分からないと答えようがない
112デフォルトの名無しさん (ワッチョイ 15bb-GQkc)
2021/04/03(土) 07:31:20.35ID:zsAyk+ZV0113デフォルトの名無しさん (ワッチョイ 1b8c-AiiE)
2021/04/07(水) 17:40:29.80ID:DBwHd1C70114デフォルトの名無しさん (アウアウウー Sae9-BKft)
2021/04/07(水) 19:54:57.14ID:J1UfrlOYa115デフォルトの名無しさん (ワッチョイ 7b35-mU/W)
2021/04/09(金) 09:17:30.32ID:+qPfXmCt0116デフォルトの名無しさん (ワッチョイ 9b33-EbLS)
2021/04/09(金) 11:00:25.81ID:9/L6JEXU0 >>115
終端行までなんだから、その前にある改行文字は含まれてあたりまえやろ。
終端行までなんだから、その前にある改行文字は含まれてあたりまえやろ。
117デフォルトの名無しさん (ワッチョイ 0e8c-bwXk)
2021/04/09(金) 21:32:27.88ID:GCSyW51k0 ヒアドキュメントの評価値とは別に
#{print "ruby "} で"ruby "とprintされるクソみたいなコードだから
#{print "ruby "} で"ruby "とprintされるクソみたいなコードだから
118デフォルトの名無しさん (オッペケ Sr5f-LdNq)
2021/04/09(金) 21:45:43.65ID:PjsXsZBpr まあなぞなぞみたいなもんでしょ
クソコードとかいったら身も蓋もない
クソコードとかいったら身も蓋もない
119デフォルトの名無しさん (ワッチョイ 4e9f-m7N9)
2021/04/09(金) 22:01:43.18ID:pm4fGgmv0 Loggerで出力する内容を奪い取って、他のメソッド呼び出しにするってどう言う実装したらいいですか?
例えば全てをTest::any::log(msg)を内部的に呼び出して終わるみたいなLoggerを作るにはどうしたらいいですか?
Logger.new(STDERR)だと全て標準エラーに出力ですが、これを全てTest::any::log(msg)の呼び出しで標準エラーには何も出さないloggerを作りたいのです
例えば全てをTest::any::log(msg)を内部的に呼び出して終わるみたいなLoggerを作るにはどうしたらいいですか?
Logger.new(STDERR)だと全て標準エラーに出力ですが、これを全てTest::any::log(msg)の呼び出しで標準エラーには何も出さないloggerを作りたいのです
120デフォルトの名無しさん (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 02:35:21.72ID:OA/XTa6K0 C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb では、
インスタンス変数に、標準エラーを代入してる
@fileutils_output ||= $stderr
@fileutils_output = $stderr
漏れは、それを真似て、
DryRun の時だけ、noop: true, verbose: true を付けて、
標準出力から標準エラーに切り替えるような、モジュールを作っている
module MyFileUtils
@fileutils_output = $stdout
extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end
module DryRun
include MyFileUtils
@fileutils_output = $stderr
extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end
MyFileUtils.f( 1, 2, a: 8, b: 9 )
MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
インスタンス変数に、標準エラーを代入してる
@fileutils_output ||= $stderr
@fileutils_output = $stderr
漏れは、それを真似て、
DryRun の時だけ、noop: true, verbose: true を付けて、
標準出力から標準エラーに切り替えるような、モジュールを作っている
module MyFileUtils
@fileutils_output = $stdout
extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end
module DryRun
include MyFileUtils
@fileutils_output = $stderr
extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end
MyFileUtils.f( 1, 2, a: 8, b: 9 )
MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
121120 (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 06:15:13.31ID:OA/XTa6K0 Ruby 逆引きハンドブックには、こう書いてある
Logger.new の引数には、ログファイルパスか、
write, close が定義された、IO などのオブジェクトを指定する
Logger.new の引数には、ログファイルパスか、
write, close が定義された、IO などのオブジェクトを指定する
122120 (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 06:29:33.47ID:OA/XTa6K0 Ruby 逆引きハンドブックには、メソッドオブジェクトも載ってる
def f_a( ) :a end
def f_b( ) :b end
def doit( command )
m = method( command )
m.call
end
def doit_2( command )
__send__ command
end
p doit( :f_a ) #=> :a
p doit_2( :f_b ) #=> :b
def f_a( ) :a end
def f_b( ) :b end
def doit( command )
m = method( command )
m.call
end
def doit_2( command )
__send__ command
end
p doit( :f_a ) #=> :a
p doit_2( :f_b ) #=> :b
123デフォルトの名無しさん (ワッチョイ e284-mJkV)
2021/04/14(水) 15:02:16.96ID:/0Vt4vuj0 gem installって個別のユーザー環境のみに反映することってできますか?
インストールしたらそのPCを使ってる全ユーザーに反映されないようにしたいです
どうしたらいいですか?
インストールしたらそのPCを使ってる全ユーザーに反映されないようにしたいです
どうしたらいいですか?
124デフォルトの名無しさん (ワッチョイ a201-vZv9)
2021/04/14(水) 15:47:13.93ID:0xQQ9slV0 1. 環境変数のGEM_HOMEを指定する
2. --install-dirを指定してインストール
3. --user-installを指定してインストール
4. rbenvを使う
どれでもいける
とりあえずgem help installでヘルプを見るといい
2. --install-dirを指定してインストール
3. --user-installを指定してインストール
4. rbenvを使う
どれでもいける
とりあえずgem help installでヘルプを見るといい
125デフォルトの名無しさん (ワッチョイ e284-mJkV)
2021/04/14(水) 18:21:50.16ID:/0Vt4vuj0 >>124
ありがとうございます
ありがとうございます
126デフォルトの名無しさん (ワッチョイ 4652-rqav)
2021/04/23(金) 12:36:53.84ID:j9CkA04K0 {"status"=>0, "data"=>[{"ask"=>"5370001", "bid"=>"5370000", "high"=>"5634576", "last"=>"5371160", "low"=>"5243350", "symbol"=>"BTC", "timestamp"=>"2021-04-23T03:22:36.028Z", "volume"=>"854.3707"}], "responsetime"=>"2021-04-23T03:22:37.031Z"}
このハッシュ?から5370000の値を取り出したいのですが上手くいきません。助けてください
このハッシュ?から5370000の値を取り出したいのですが上手くいきません。助けてください
127デフォルトの名無しさん (ワッチョイ 245f-DYWd)
2021/04/23(金) 19:53:44.06ID:gO4UxsH40 >>126
どうやろうとしてうまくいかんの?
どうやろうとしてうまくいかんの?
128デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/23(金) 20:21:10.93ID:v3P9E6mR0 >>127
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
129デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/23(金) 20:36:39.90ID:7NT1P8pu0130デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/23(金) 21:26:36.95ID:v3P9E6mR0 >>129
ヒントを元にそれぞれブラケットで囲ったら行けました。ありがとうございました
ヒントを元にそれぞれブラケットで囲ったら行けました。ありがとうございました
131デフォルトの名無しさん (オッペケ Sr39-R0M4)
2021/04/23(金) 21:33:33.39ID:dol38sZTr 本質的に理解してないやろこれ
132デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 06:25:40.53ID:+DYpagDZ0 >>131
大変申し訳ありません。digについて理解しました。重ねてありがとうございました。
大変申し訳ありません。digについて理解しました。重ねてありがとうございました。
133デフォルトの名無しさん (ワッチョイ 4652-KcJX)
2021/04/24(土) 15:27:17.38ID:vVXlCGEI0 度々申し訳ないのですが
{"status"=>0, "data"=>[{"amount"=>"0", "available"=>"0", "conversionRate"=>"1", "symbol"=>"JPY"}, {"amount"=>"0", "available"=>"0", "conversionRate"=>"5377836", "symbol"=>"BTC"}], "responsetime"=>"2021-04-24T06:14:41.169Z"}
ここから5377836を出力する場合も理解さえできればdigでいけるのですか?
今のコード
r_hash = JSON.parse(response.body)
puts r_hash["data"][1]["conversionRate"]
# =>"5377836"
できれば覚えたてのこれ使いたい↓
puts response_hash = dig("data",ここわからない,"conversionRate")
{"status"=>0, "data"=>[{"amount"=>"0", "available"=>"0", "conversionRate"=>"1", "symbol"=>"JPY"}, {"amount"=>"0", "available"=>"0", "conversionRate"=>"5377836", "symbol"=>"BTC"}], "responsetime"=>"2021-04-24T06:14:41.169Z"}
ここから5377836を出力する場合も理解さえできればdigでいけるのですか?
今のコード
r_hash = JSON.parse(response.body)
puts r_hash["data"][1]["conversionRate"]
# =>"5377836"
できれば覚えたてのこれ使いたい↓
puts response_hash = dig("data",ここわからない,"conversionRate")
134デフォルトの名無しさん (ワッチョイ 7d2d-Im0W)
2021/04/24(土) 16:46:14.63ID:j3qP/sr70 ブラケットで書くのと同じだよ
r_hash["data"][1]["conversionRate"]
r_hash.dig("data", 1, "conversionRate")
r_hash["data"][1]["conversionRate"]
r_hash.dig("data", 1, "conversionRate")
135デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 22:29:45.06ID:+DYpagDZ0 >>134
ありがとうございます。無事取れたのですが引数が頭の中でぐるぐるしてるのでもう一度リファレンス見てきます
ありがとうございます。無事取れたのですが引数が頭の中でぐるぐるしてるのでもう一度リファレンス見てきます
136デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/24(土) 22:33:17.78ID:rJwQsTRc0 つーか、リストとハッシュについての理解が足りないんちゃうか?
インデックスとかキーとかの感覚がわからんのやろ。
インデックスとかキーとかの感覚がわからんのやろ。
137デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 22:56:02.00ID:+DYpagDZ0138デフォルトの名無しさん (ワッチョイ 2901-On6t)
2021/04/25(日) 10:27:13.97ID:IoXyqRUD0 配列の添え字(数字)が文字列になっただけだよ
添え字が数字じゃないので一づつ増やすことはできないけど
添え字が数字じゃないので一づつ増やすことはできないけど
139デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/25(日) 13:07:39.95ID:EAdTvuiP0 >>138
アドバイスありがとうございます。悲しいくらい今日も予定がないので学習のため一個ずつ値を呼び出して確認してみます。
アドバイスありがとうございます。悲しいくらい今日も予定がないので学習のため一個ずつ値を呼び出して確認してみます。
140デフォルトの名無しさん (ワッチョイ 667d-Nexr)
2021/04/25(日) 13:30:05.13ID:M6swdTrH0141デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 13:55:29.69ID:oFpMkyEJ0 初心者は、dot install, progate などをやれば?
142デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/25(日) 15:44:12.74ID:EAdTvuiP0143デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/25(日) 15:53:02.64ID:I4PgyU7Gr マニュアル読めと言うのは初心者には酷か?
https://docs.ruby-lang.org/ja/latest/doc/index.html
https://docs.ruby-lang.org/ja/latest/doc/index.html
144デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 16:58:50.92ID:oFpMkyEJ0 本が好きなら、定番の入門書「たのしいRuby 第6版」2019 とか
YouTube で有名な、雑食系エンジニア・KENTA のサロンは皆、Ruby on Rails じゃないの?
YouTube で有名な、雑食系エンジニア・KENTA のサロンは皆、Ruby on Rails じゃないの?
145デフォルトの名無しさん
2021/04/25(日) 17:29:21.56 Excelのsheet1に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/
2行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://co-trip.jp/article/191673/https://hitosara.com/ch_478603/https://kyo-soku.com/2020/04/03/salon-de-muge/
3行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://www.fruitmoti-shoutikudou.jp/https://sweetsguide.jp/product/90706https://osakalucci.jp/shoutikudou
と記載されているのを
sheet2に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1
2行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/
3行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 http://www.arashiyamaryo.or.jp/access/
4行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://co-trip.jp/article/191673/
5行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://hitosara.com/ch_478603/
6行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://kyo-soku.com/2020/04/03/salon-de-muge/
7行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://www.fruitmoti-shoutikudou.jp/
8行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://sweetsguide.jp/product/90706
9行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://osakalucci.jp/shoutikudou
このように変換したいです。オンライン上でRubyを使用して作成したいのですが、どのようにすればよいでしょうか?
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/
2行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://co-trip.jp/article/191673/https://hitosara.com/ch_478603/https://kyo-soku.com/2020/04/03/salon-de-muge/
3行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://www.fruitmoti-shoutikudou.jp/https://sweetsguide.jp/product/90706https://osakalucci.jp/shoutikudou
と記載されているのを
sheet2に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1
2行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/
3行目 https://www.navitime.co.jp/poi?spot=02022-1220435&ncm=1 http://www.arashiyamaryo.or.jp/access/
4行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://co-trip.jp/article/191673/
5行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://hitosara.com/ch_478603/
6行目 https://www.navitime.co.jp/poi?spot=02022-1212380&ncm=1 https://kyo-soku.com/2020/04/03/salon-de-muge/
7行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://www.fruitmoti-shoutikudou.jp/
8行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://sweetsguide.jp/product/90706
9行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&ncm=1 https://osakalucci.jp/shoutikudou
このように変換したいです。オンライン上でRubyを使用して作成したいのですが、どのようにすればよいでしょうか?
146デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 18:11:40.31ID:oFpMkyEJ0147デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/25(日) 18:37:11.77ID:nrx375qK0 >>145
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。
など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。
など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
148デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 23:09:08.20ID:oFpMkyEJ0 3つに分離する部分だけを作った。
入出力の部分は、CSV モジュールを使えば?
re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/" )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転
出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1",
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/",
"http://www.arashiyamaryo.or.jp/access/"]
入出力の部分は、CSV モジュールを使えば?
re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/" )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転
出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1",
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/",
"http://www.arashiyamaryo.or.jp/access/"]
149148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:51:09.40ID:0DE0v1OZ0 出来た!
文字列を3分割する部分を関数化して、呼び出す
入出力は、CSV 形式で。
入力ファイルは、input.csv
paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?
# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https
# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end
次へ続く
文字列を3分割する部分を関数化して、呼び出す
入出力は、CSV 形式で。
入力ファイルは、input.csv
paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?
# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https
# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end
次へ続く
150148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:52:06.70ID:0DE0v1OZ0 require 'csv'
result_ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )
split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
result_ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )
split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
151デフォルトの名無しさん (ワッチョイ b206-A/Lu)
2021/04/26(月) 22:46:21.55ID:RYaLTPlL0 paramsという名前のハッシュを関数の中で使う際、
:codeの組をhogeだけでなくmoge、kuge、sageなど
関数の引数で選べるようにする場合、
'+ 引数名 +'だとエラーになるようですが、
バリューに引数を使おうとしている事自体が根本的に間違っていますか?
params = {
:code=> 'hoge', ←'+ 引数名 +'だとダメ。ここを入れ替えたい
:page => 1,
:count => 5
}
:codeの組をhogeだけでなくmoge、kuge、sageなど
関数の引数で選べるようにする場合、
'+ 引数名 +'だとエラーになるようですが、
バリューに引数を使おうとしている事自体が根本的に間違っていますか?
params = {
:code=> 'hoge', ←'+ 引数名 +'だとダメ。ここを入れ替えたい
:page => 1,
:count => 5
}
152デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/26(月) 22:54:52.82ID:rfpJ92nWr 意味が分からん。
エラーになるコードと希望する出力は何?
エラーになるコードと希望する出力は何?
153デフォルトの名無しさん (ワッチョイ b206-A/Lu)
2021/04/26(月) 23:08:46.56ID:RYaLTPlL0154デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/26(月) 23:31:12.51ID:rfpJ92nWr >>153
おう、がんばれ
おう、がんばれ
レスを投稿する
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 【朗報】愛国烈士ほんこん、高市首相のために長文を投稿wwwwwwwwwwwww [834922174]
- 小池百合子「キィィ…!なんでアタシより先に総理になってンのよ…あの女狐ッ!」
- ニートしかいない時間ってマジでつまんないよな
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 高市コイン、155円突破wwwwwwwwww [246620176]
- おじゃる丸をまったり待機するスレ🏡
