Ruby 初心者スレッド Part 55
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/06/21(土) 23:39:44.94ID:rKd1VvW8質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 54
http://peace.2ch.net/test/read.cgi/tech/1392598207/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0267デフォルトの名無しさん
2014/08/07(木) 05:22:45.89ID:mGC1aKkAすいません取り乱しました
そもそも、これがセッションの正しい挙動だったんですね。
sinatraがデフォルトでセッションをクッキーに保存しているというだけで別にセッションはクッキーを使うためのものではないって解釈でいいんですかね?
0268デフォルトの名無しさん
2014/08/07(木) 11:27:41.97ID:qMfbyumEcookieが読み込めないというより
500が帰ってきているから結果的にcookieが読み込めていないってことだよね。
firefoxでcookieが見れるというのは前回成功した時のcookieが見えているだけじゃないかな。
0269デフォルトの名無しさん
2014/08/08(金) 00:35:31.80ID:fc9o1pZf多分解決しました。
どうもクッキーの設定とsinatraのコードそのものの両方が間違ってたみたいでsinatraのコードダメ元で変えてみたら普段ならheroku にデプロイした後は確実にエラーが出るのですがちゃんと通り、半日ほど立ちましたがさっきもログインが持続していることを確認できました。
体系的な知識がなくかなり手こずりましたが皆様のおかげで解決出来ました。
0270デフォルトの名無しさん
2014/08/09(土) 01:57:37.69ID:hZJQ1zja0271デフォルトの名無しさん
2014/08/10(日) 00:10:35.94ID:Npb/3QruSelenium Webdriver、chromeにて
とあるサイトの画像URLを取得、テキストに追記で書き出ししようと色々と調べたのですが全く分からず困っています。
<div class="hoge">
<img src="http://hoge.jpg" alt=""></div>
htmlは上記、xpathは/hoge/imgと仮定します
open("hoge.txt", "a"){|f|
output = driver.find_element(:xpath, '/hoge/img')
f.puts "#{output.text}"
}
のように書いてみたもののテキストに改行しか出力されない状態です
0272デフォルトの名無しさん
2014/08/10(日) 00:30:45.65ID:zlJil821それを書く前に15個くらいスクリプトを作ったはずだ
それは動作したのかどうか言え
もしいきなりそれを作ろうとしたのならあらゆる点で間違っている
いきなり別荘を建てようとするな
まず釘打ってみたり床で組み立ててみたり本棚作ってみたり犬小屋作ってみたりしろ
その経験はひとつも無駄にならない
0273デフォルトの名無しさん
2014/08/10(日) 01:14:37.49ID:Npb/3Qru画面上にテキスト表示されている物はきちんと書き出されました
それで画像urlを取得しようと沢山調べ考えたんですが
今日はもう寝て先程見つけた下を参考にnokogiriにチャレンジしてみようかと
http://d.hatena.ne.jp/toyoshi/touch/20101109/1289294545
ちょっとnokogiri駆使してみたんですが上手く行かなかったような
0274,,・´∀`・,,)っ-○○○
2014/08/10(日) 01:30:50.99ID:ObwJkVu+0275デフォルトの名無しさん
2014/08/10(日) 08:37:49.11ID:frgBbTF30276デフォルトの名無しさん
2014/08/10(日) 09:57:44.18ID:aTEKyeJh0277デフォルトの名無しさん
2014/08/10(日) 11:18:40.68ID:TxwgTDO4取り敢えずjapanize(メニュー日本語化)とConvertToUTF8(sjis文字化け対策)は入れました。
0278デフォルトの名無しさん
2014/08/10(日) 15:06:43.67ID:zOHM5qWJやっとくべき設定?
まずその2つをアンインストールするんだ。
0279デフォルトの名無しさん
2014/08/10(日) 17:01:06.03ID:DcfkR93xエディタ固有の質問は専用スレあるんだから
そっちで聞いたほうがいい
0280デフォルトの名無しさん
2014/08/12(火) 12:59:00.63ID:nam2SDUxprintf で書式指定をするには何を使うのでしょうか?つまり,
printf( "%?", flg )
の ??? には何を指定するのでしょうか?
0281デフォルトの名無しさん
2014/08/12(火) 13:24:35.57ID:ACV8I0vK=> "true"
0283デフォルトの名無しさん
2014/08/12(火) 19:31:50.15ID:PU4N0EB0Rubyでそう言う事したい場合ってドキュメントでカバーするの?
「ポリモーフィズムしたいからこのメソッドはもっとけ」みたいなの
0284,,・´∀`・,,)っ-○○○
2014/08/12(火) 20:28:53.57ID:fcVldYYC実行中にメソッド追加したり削除したりできるくらいだから当然
言語レベルとしてはない。
だがやれんこともない。
http://qiita.com/akisute3@github/items/66bf766166eda2b84a03
Rails的にはテストコードでカバーかね
メソッドが定義されているかはdefined?で確認することができる。
0285デフォルトの名無しさん
2014/08/12(火) 22:29:22.75ID:NtdaG8qe上書きしないと例外投げるだけのメソッド作っとく。
0286デフォルトの名無しさん
2014/08/12(火) 23:31:37.25ID:kLOI0Uwsその考え方がキモい、ということにはなってる
いや常識的に考えて○○ができなきゃオブジェクト指向じゃないだろ、というものの大半は
単に特定の言語、ぶっちゃけJavaとC++、のローカル仕様だったりする
RubyでJavaをやるのはやめようぜ、Rubyなんだし
0287デフォルトの名無しさん
2014/08/12(火) 23:41:51.41ID:x9ZUxVMu0288デフォルトの名無しさん
2014/08/12(火) 23:51:26.48ID:okDd+6G6スクリプトといえども型名等明示できるものは明示できるようにして
ヒューマンエラーを未然に防げるようにしておくのがトレンド
というわけでRuby3はその方向に進化してくれ
0289デフォルトの名無しさん
2014/08/13(水) 00:23:51.87ID:KN2EsXN5残念だけど、「その考え方」は Smalltalk の時代から「よくある言い方」、
いわゆる「イディオム」の一つとして普通に存在している
ちなみに Smalltalk では、>>285 の表現を借りると:
上書きしないと subclassResponsibility メッセージを
投げるだけのメソッド作っとく。
になり、これを Ruby で言い直せば:
上書きしないと例外 SubclassResponsibility を
発生させる(raise する)だけのメソッド作っとく。
になる
さて >>286 に限らず、C++/Java のような静的OOPしか知らない人が
「OO設計の概念は C++/Java から生まれた」みたいな
硬直した発想をしがちなのはナゼなんだろうか?
0290デフォルトの名無しさん
2014/08/13(水) 01:06:25.32ID:OCtuWZt1まじでうっとおしい
0291デフォルトの名無しさん
2014/08/13(水) 01:09:46.40ID:lr+rlGxM被害妄想じゃない?
286のレスからはそうは読み取れないな
硬直した発想だとか言うけど
起源主張して褒められたいという発想自体が
まさにソレじゃね
0292デフォルトの名無しさん
2014/08/13(水) 01:11:07.57ID:TCL9mbxJ僕が初めてオブジェクト志向言語を触ったのはjava/c++だったから! って人が多いから。
Ruby なら、そういう用途に使うために NotImplementedError が組み込みであるから、それを使ってくれというのが言語としてのスタンスってだけの話だと思う。
0293デフォルトの名無しさん
2014/08/13(水) 01:16:16.87ID:0XAF0Eso0294,,・´∀`・,,)っ-○○○
2014/08/13(水) 01:34:10.05ID:K9qjufdc0295289
2014/08/13(水) 02:31:29.89ID:KN2EsXN5「無いのなら作ってしまえホトトギス」ということで、
属性の宣言 attr_reader 等と似た抽象メソッド宣言 abstract_method を書いてみた
http://play.island.ac/codepaste/code?id=1586
abstract_method の使い方は:
・attr_reader 等と同様に、クラス定義内で abstract_method を呼ぶ
・引数は、メソッド名をキー、メソッド引数の個数を値とするハッシュを渡す
・例:abstract_method :foo => 1 # 抽象メソッド foo を宣言
>>290
わざわざ動的OOP言語である Ruby スレで C++/Java との話題を切り出す、
しかも無知に起因すると思われる間違った情報(>>286)をまき散らすのも勘弁願いたい
0296289
2014/08/13(水) 02:43:24.62ID:KN2EsXN5・訂正前
94 # 具象メソッド
95 def foo(message)
96 format "I am a %s.", self.class
97 end
・訂正後
94 # 具象メソッドを利用するメソッド
95 def foo(message)
96 format "I am a %s.", message
97 end
訂正した結果として、実行例も "I am a FOO." になる
0297289
2014/08/13(水) 03:01:19.57ID:KN2EsXN5抽象クラス/抽象メソッドという概念を使いたくない、という
主張だけなら、特に気にしなかった
個人のプログラミングスタイルなんだから他人がとやかく言うべきじゃないし、
Ruby はそういった(良い意味で「お気楽な」)スタイルも許容する認める言語だから
でも >>286 は自分の主張を周囲に押しつけようとし、
しかもその主張の根拠「JavaとC++、のローカル仕様」が間違っているから
厳しい口調になった
言いたかったのは、それだけだ
0298デフォルトの名無しさん
2014/08/13(水) 04:30:45.53ID:lr+rlGxM面白いなw
> 自分の主張を周囲に押しつけようとし
ってのがまさに
> 「継承する時はこのメソッドを実装してね」
これじゃないか。
普通に読み取れば
言語ごとに色が有るんだから
多様性を楽しもうぜってのが286のレスでしょ。
どう読み取ればそうなるんだよ
0299,,・´∀`・,,)っ-○○○
2014/08/13(水) 07:57:49.27ID:K9qjufdcclass Parent
def self.inherited(child)
child.class_eval do
# ここでなんか処理
end
end
end
C++やJavaで純粋仮想関数使いたい意図はわかるが
「ヒャッハー!コンパイル通さないぜ!」やるだけでOO設計やった
気になるのはいかがなものかと。
return 0;
やるだけの関数定義してもシンボル名さえあってれば通っちゃうわけだよね。
お前それでいいのか?
0300289
2014/08/13(水) 11:44:01.65ID:KN2EsXN5たしかに面白いな
・Enumerable モジュールを include する時はメソッド each を実装してね
・Comparable モジュールを include する時はメソッド <=> を実装してね
・あるクラスをハッシュのキーとして扱う時はメソッド eql? と hash を実装してね
・AcriveRecord::Base を継承する時は、DB上に同名のテーブルを定義し、
type というカラムを設けてね
Ruby プログラミングではありふれた決まり事のいくつかだけど、
これらも >>298 には「おしつけ」になるんだろうなぁ.....
うん、たしかに面白い
0301デフォルトの名無しさん
2014/08/13(水) 13:03:40.66ID:XU9wPxJnflg=true;flg.to_s
0302デフォルトの名無しさん
2014/08/13(水) 13:33:34.15ID:TBkS3glifoo:1 ←よい
foo:'bar' ←よい
foo: :bar ←なんかださい
0303デフォルトの名無しさん
2014/08/13(水) 14:47:53.87ID:s6AcBQ2cYAML.dumpで書き出したときに先頭がマルチバイト文字
だと自動的に""で囲まれるようですがこれは確定した仕様なんでしょうか?
ドキュメントに一切記述がなくて不安です。
0304デフォルトの名無しさん
2014/08/13(水) 15:06:48.24ID:KN2EsXN5この話かな?
・Ruby1.9.2で日本語を含むYAMLを出力する時、バイナリ文字列化されないようにする
http://keijinsonyaban.blogspot.jp/2010/10/ruby192yaml.html
0306303
2014/08/13(水) 16:32:59.37ID:s6AcBQ2cそんな感じです。こちらの環境はwindows版2.0でPsychも有効になっているようですが
require 'yaml'
jp = 'あいうえお'
puts(YAML.dump(jp))
#--- "あいうえお"
en = 'abcde'
puts(YAML.dump(en))
#--- abcde
#...
となって日本語のほうだけダブルクォーテーションで囲まれてしまいます。
確定した仕様なら大した問題はないのですがいろいろ調べてると2,3年混乱
が続いたライブラリのようで不安になってきました。使わないほうがいいのでしょうか?
0307デフォルトの名無しさん
2014/08/13(水) 16:45:24.76ID:9nXT2NBI0308289
2014/08/13(水) 21:39:49.42ID:KN2EsXN5使用例として「2次元クラフィック向けの四角形クラス」を書いてみた
http://play.island.ac/codepaste/code?id=1587
これは姉妹スレ「Rubyについて Part49」の #771,772-774 で書いていた
コードを改造母体にして、抽象メソッド宣言やその他の変更を加えたものです
参考まで
0309289
2014/08/13(水) 22:40:38.72ID:KN2EsXN5今さら調べてみると、海外でも似たような議論をしている
・Abstract Method in Ruby - Stack Overflow
http://stackoverflow.com/questions/6792428/abstract-method-in-ruby
ここでも基本は「具象クラスで抽象メソッドが未定義であれば例外を投げる」だけど、
>>289 と同様に Smalltalk ではそれを SubclassResponsibility と呼ぶという
レスが付き、それと類似のコードが提案されている
また、>>295 では抽象メソッド宣言コードを自作してみたけど、
同じ事を考えていた人は海外にもいた
・Creating an Abstract Method | zenspider.com
http://www.zenspider.com/Languages/Ruby/Cookbook/ClassesAndObjects/AbstractMethod.html
>>295 では組込みクラス Module に宣言メソッドを追加していたけど、
こちらの実装では宣言クラス Abstract を定義しクラスメソッド Abstract.method として
抽象メソッドを宣言する API 仕様になっているみたいだ
例えば、任意のクラス定義内で Abstract.method :foo と書く
0310デフォルトの名無しさん
2014/08/13(水) 22:54:28.35ID:KN2EsXN5YAML は使ったことがないのでよく分からんけど、
公式仕様書では最初のドラフト版である 1.0 の時点で
ダブルクォーテーションで囲まれた文字列が定義され、
最新版の 1.2 でも仕様定義に変更はなく安定しているみたいだね
・YAML Ain’t Markup Language (YAML) Version 1.2
http://yaml.org/spec/1.2/spec.html#id2760844
この仕様書の例 "Example 2.17. Quoted Scalars" が該当する箇所
後はライブラリにおける仕様の実装品質を検討することになる
・もし品質が保証された他の手段(他のYAML実装やJSON/XML仕様)が
存在しているなら採用を検討する、あるいは
・とりあえず何か問題が起こるまでは標準ライブラリの利用を継続する
ぶっちゃけた話、どちらを選ぶのが適切かはケースバイケースだから、
後は >>306 自ら最終判断を下すしかないと思う
0311デフォルトの名無しさん
2014/08/14(木) 03:58:05.93ID:+2zwhmMM0312デフォルトの名無しさん
2014/08/14(木) 07:51:44.38ID:/Ffu3gb/0313デフォルトの名無しさん
2014/08/15(金) 04:49:13.30ID:MB8edIwXってできなくて不便なんすけど
ruby2.1でもまだfileに対応してないんスね
0314デフォルトの名無しさん
2014/08/15(金) 05:36:59.12ID:5MJoVvaB=> ["a", "b", "c"]
>> "a\nb\nc\n".split("\n"){|i| puts i}
=> ["a", "b", "c"]
>> "a\nb\nc\n".split("\n").each{|i| puts i}
a
b
c
=> ["a", "b", "c"]
>>
2行目のeachつけ忘れでエラーでないんだけど
Arrayに直接ブロックをぶら下げると何が起こるの?
0315デフォルトの名無しさん
2014/08/15(金) 06:18:06.78ID:11xv4jXV0316デフォルトの名無しさん
2014/08/15(金) 08:26:41.72ID:2ipN4K8/irb> 'abc'.upcase
=> "ABC"
irb> 'abc'.upcase{|x| foo}
=> "ABC"
0317デフォルトの名無しさん
2014/08/16(土) 18:49:31.04ID:ur+z2lZs原書は2013年5月に出版されたようだけど。
0318デフォルトの名無しさん
2014/08/16(土) 19:08:17.04ID:pCqm9jUF翻訳を検討し始めるのではないかと思われ
Ruby 2.2 リリースとの熾烈な競争になるなぁ(棒
0319デフォルトの名無しさん
2014/08/16(土) 19:14:06.94ID:jGqbtnFx0320デフォルトの名無しさん
2014/08/16(土) 21:15:40.19ID:jGqbtnFxbar
end
をもちっとコンパクトに書けんかの
if [1, 2, 3].include?(foo)
bar
end
だとなんかイモい
case foo
when 1, 2, 3
bar
end
もなんかイモい
if foo is 1 || 2 || 3
bar
end
とかかけたらな
0321デフォルトの名無しさん
2014/08/16(土) 21:43:07.02ID:pCqm9jUFコードの可読性が数学における表記法との類似性を指すのであれば:
>> if [1, 2, 3].include?(foo)
が最も類似していると思う
もしコンパクトさを最重要視したいのなら、
Ruby では識別子に UTF-8 文字が利用できるから、
以下のコードを書けばいい
irb(main):001:0> module Enumerable; alias ∈ include?; end
=> nil
irb(main):002:0> [1, 2, 3].∈ 2
=> true
irb(main):003:0> [1, 2, 3].∈ 4
=> false
irb(main):004:0>
(2ch では「∈」という文字が化けている可能性が高いけど、
これは「ある要素が集合に含まれているか」を表す数学の記号)
0322デフォルトの名無しさん
2014/08/16(土) 21:51:29.58ID:A0O6xtGzはRuby的ではないだろ
論理的に合っててシンプルならいいってのはPythonっぽいわ
0323デフォルトの名無しさん
2014/08/16(土) 22:06:29.30ID:pCqm9jUF>>321 では「数学的表記との類似性」という視点でコードを示したわけで、
これが「Ruby的」とは一言も書いていない
だから一体、何に対して過敏に反応しているのか、わけがわからんな
「Ruby的」とか「Rubyっぽい」というのは、>>320 の前半3つの書き方、
そのどれでも受け入れ、その中からどれを選択するかはプログラマに
任せるという「寛容な設計哲学」にある(と、個人的には考える)
これの「Rubyらしさ」は、常にプログラマへ「論理的に合っててシンプルならいい」を
強要する Python とは対照的だね
0324デフォルトの名無しさん
2014/08/16(土) 22:09:16.80ID:xeQ2qkm20325デフォルトの名無しさん
2014/08/16(土) 22:13:46.44ID:ur+z2lZsもっとコードをしっかり読もうよ。
元のコードの一行目はなんか変じゃない?
0326デフォルトの名無しさん
2014/08/16(土) 22:17:39.81ID:pCqm9jUFtypo をいちいち揚げ足取りするほど野暮じゃないんで....
0327デフォルトの名無しさん
2014/08/16(土) 22:23:52.88ID:ur+z2lZsbar
end
foo∈Nなら
0328デフォルトの名無しさん
2014/08/16(土) 23:21:02.64ID:xeQ2qkm2pythonだねw
0329デフォルトの名無しさん
2014/08/17(日) 11:50:17.42ID:C1vhwMQlclass Fixnum
def is(f)
f.call(self)
end
end
def one_of(*them)
return them.first.method(:include?) if them.size == 1
them.method(:include?)
end
foo = 5
bar if foo.is one_of 1,3,5,7
bar if foo.is one_of [1,3,5,7]
bar if foo.is one_of 1..7
0330デフォルトの名無しさん
2014/08/17(日) 16:28:19.29ID:v7smLqH20331デフォルトの名無しさん
2014/08/17(日) 18:27:16.73ID:F9qolS48100人が同じような実装書いたら自動でオリジナルに反映されるクラウド型言語にすれば
車輪の再開発も最小限に抑えられるのに
0332デフォルトの名無しさん
2014/08/17(日) 19:21:09.40ID:Ot0PKOG+0333デフォルトの名無しさん
2014/08/17(日) 19:51:54.11ID:sI1u/7Zz0334デフォルトの名無しさん
2014/08/17(日) 20:12:47.24ID:wn4TLg6+100アカウント作る作業が捗りますね。
0335デフォルトの名無しさん
2014/08/18(月) 18:39:08.27ID:MNhNsEMrstr = String.new
str << "hello"
str << "\n"
str << "world"
p str
とやると、 "hello\nworld" が出力されてしまいます
<< の代わりに + を試してみたり、クオーテーションマークを変更してみたのですが上手く行きませんでした
ご存じの方がいらっしゃったら教えて下さい
0336デフォルトの名無しさん
2014/08/18(月) 18:55:10.29ID:RYTp3JkDpではなくprintやputsを使う
0337デフォルトの名無しさん
2014/08/18(月) 19:07:53.97ID:MNhNsEMrああ、ほんとだ!
pやputs、printの微妙な違いを理解していませんでした
教えて下さりありがとうございます!
0338デフォルトの名無しさん
2014/08/18(月) 21:43:14.89ID:DSQRQPi5文字列から以下のようにscanすると、1回目のマッチで先頭の12111を消費してしまうので
残りは2111となってマッチせず、戻り値は1要素になります
"121112111".scan(/1+21+/) #=> ["12111"]
元の文字列の中で、以下のように正規表現に当てはまるすべてのパターンを抽出したいとき
簡単にできる方法はあるでしょうか?
"121112111".??? /1+21+/ #=> ["12111","1112111"]
その後文字数を数えたりしたいので、先読みだけでは期待通りになりませんでした
"121112111".scan(/1+2(?=1+)/) #=> ["12", "1112"]
0339デフォルトの名無しさん
2014/08/18(月) 22:12:57.28ID:fWx8XBuAirb(main):001:0> xs = "121112111"
=> "121112111"
irb(main):002:0> (0..(xs.size - 1)).map { |i| xs[i, xs.size - i].scan /1+21+/ }.flatten.uniq
=> ["12111", "1112111", "112111"]
irb(main):003:0>
0340デフォルトの名無しさん
2014/08/18(月) 22:16:57.84ID:8phCtYDaメソッド1つでやる方法はない
ループ回してやるぐらいだろう
0341デフォルトの名無しさん
2014/08/18(月) 22:50:50.95ID:DSQRQPi5ありがとうございます
やっぱり単純な方法はなさそうですね
今回に限っては以下のように対処することにしました
"121112111".gsub(/1+/){"#$& #$&"}.scan(/1+21+/)
=> ["12111", "1112111"]
0342デフォルトの名無しさん
2014/08/18(月) 23:07:32.88ID:kHWBbVG20343デフォルトの名無しさん
2014/08/19(火) 22:06:10.54ID:4T9lOZln文字列を処理するお題が「次」に出るに違いない・・・そう、これは
ブラフだ。きっと010001000に置き換えてビット演算で効率のいい
アルゴリズムを考えないと解けないようにできているんだ・・・!
0344デフォルトの名無しさん
2014/08/20(水) 23:56:22.60ID:Hb2EFkIX@list.each do |e|
e.foo
end
end
って書くののなんかダサいから、
nil.to_aで[]が返るのを使って、
@list.to_a.each do |foo|
foo.xxx
end
ってするのはどうかな?
to_aだけだと@listがnilの可能性がある事を示せなくて紛らわしいかな?
0345デフォルトの名無しさん
2014/08/20(水) 23:59:39.84ID:Hb2EFkIXe.foo
end
だった。
0346デフォルトの名無しさん
2014/08/21(木) 00:45:52.00ID:im1RGGTyArray(@list).each
という書き方はよく使うね
0347デフォルトの名無しさん
2014/08/21(木) 02:06:12.53ID:x7AE9dcj「引数(orインスタンス変数)は配列互換。途中でエラーになるんでよろしく」とマニュアルに太字で書いておく
いやわりとマジで
メソッドに外部から投げ入れるオブジェクトのクラスがナニかというのを徹底するのは人間の仕事
0348デフォルトの名無しさん
2014/08/21(木) 02:08:32.65ID:Rf32jxet動的型付け言語は大変だな。
0349デフォルトの名無しさん
2014/08/21(木) 02:18:40.09ID:x7AE9dcjdef hoge(arg)
arg.each do |e|
と書いた時点で「いや待てよargが配列じゃなかったらどうしよう、ちょっと変わったHashの可能性もあるよな、よし対処しよう」と考え
な い
というのは、直感やおもてなしのココロ(って何)には反する
0350デフォルトの名無しさん
2014/08/21(木) 13:02:24.41ID:cuQAWRrRPostデータのエンコードとバリデーションをしたいのですが
良いライブラリはありますでしょうか
0351デフォルトの名無しさん
2014/08/21(木) 17:35:17.83ID:yvxtVK3Iその例の場合は
def hoge(*args)
にしちゃうかな、配列が複数ある場合は無理だけど…
0352デフォルトの名無しさん
2014/08/21(木) 21:32:48.95ID:JmIsso9r> って書くののなんかダサいから、
どうやら Ruby の作者も「if [email protected]?」はダサいと感じていたみたいで、
結果として「unless @list.nil?」という珍しい文法が Ruby に追加された
同様にして「while [email protected]?」もダサいので「until @list.nil?」も追加された
> to_aだけだと@listがnilの可能性がある事を示せなくて紛らわしいかな?
@list の値が nil のケース(=リストそのものが存在していないケース)と
@listi の値が空リストであるケース、それぞれによって処理を分岐させたいのなら、
この nil.to_a というコードは問題になる
ただ、今回の例(>>344)では両者のケースに対して同じ処理を期待しているように見えるから、
たとえば:
if (! @list.nil?) && (! @list.empty?)
あるいは:
unless @list.nil? || @list.empty?
と書くよりも、nil.to_a のほうが好ましいと思う
(よくある言い回し、いわゆる Ruby のイディオムの一つになれる可能性がある)
0353デフォルトの名無しさん
2014/08/22(金) 21:34:40.30ID:QtCUYHT3JavaやC#にだってぬるぽあるやん
0354デフォルトの名無しさん
2014/08/22(金) 23:33:54.15ID:IRypyqt/0355デフォルトの名無しさん
2014/08/23(土) 00:51:47.76ID:T0CaKeKd@list.each(&:foo)
じゃないの???
0356デフォルトの名無しさん
2014/08/23(土) 01:34:51.41ID:2/26ZChgが標準でできればなぁ
request for: Object#try
https://bugs.ruby-lang.org/issues/1122
0357デフォルトの名無しさん
2014/08/23(土) 02:24:04.01ID:WQrXNI9l0358デフォルトの名無しさん
2014/08/23(土) 14:44:18.03ID:9MV2WjBq以下の回答ではWrong Answerとなってしまうのですが
おかしいor考慮不足な点がなにかわかりません
わかる方ご指摘をお願いしたいです
問題文に記載されたサンプル入出力は満たしています
問題:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0021&lang=jp
Wrong Answer回答:http://ideone.com/Cl6B6n
回答の内容
2直線の傾き(i,j)を計算し一致すれば
(ただし実数なのでその差が相対誤差(大きいほう*イプシロン)、絶対誤差(イプシロン)より小さければ)
平行と判断する
(イプシロンは1e-10と置く)
0359デフォルトの名無しさん
2014/08/23(土) 14:55:59.25ID:WQrXNI9lゼロ除算が考慮されていない
0360デフォルトの名無しさん
2014/08/23(土) 15:08:18.23ID:9MV2WjBqおう・・・ご指摘通りでした
0除算考慮したらAcceptされました、ありがとうございます!
誤差がおかしいのかとか難しく考えすぎてた・・・
0361デフォルトの名無しさん
2014/08/23(土) 16:39:10.31ID:0NcmejrN0362デフォルトの名無しさん
2014/08/23(土) 16:47:31.24ID:0NcmejrNrbenvでバージョン切り替えが出来ないんだけど、誰かわかる?
rbenv globalコマンドとruby -vコマンドで表示されるバージョンが違うってどゆこと?
バスの設定はしてある。
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
0363デフォルトの名無しさん
2014/08/23(土) 17:13:00.67ID:WQrXNI9l環境変数 RBENV_VERSION かカレントディレクトリに .ruby-version があるかどっちかじゃね?
0364デフォルトの名無しさん
2014/08/23(土) 19:35:20.67ID:1h2qyd6w0365デフォルトの名無しさん
2014/08/23(土) 20:35:05.17ID:WQrXNI9lsystem
0366デフォルトの名無しさん
2014/08/24(日) 00:11:04.95ID:6OMWvQqoresult =で起動できました!
それと上で起動させたスクリプトを時間がきたら停止させるようにしたいんだけど、
resultで起動させつつその下の命令も実行させるようにってできますか?
■ このスレッドは過去ログ倉庫に格納されています