トップページ⇒tech
1001コメント373KB

Ruby 初心者スレッド Part 50

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/07/29(日) 14:26:28.92
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ

前スレ
Ruby 初心者スレッド Part 49
http://toro.2ch.net/test/read.cgi/tech/1336507487/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
0655デフォルトの名無しさん2012/12/03(月) 21:15:41.53
Linuxにほぼ入ってるから、インストールスクリプトとかでよく見かける。そのうちpythonに置き換わるのかな。
0656デフォルトの名無しさん2012/12/03(月) 21:19:02.75
>>652

なんで動かないんだろうと思ったら…

> It returns the total number of characters removed from all its arguments.

(  Д )    ゚   ゚

完全に忘れていた。
0657デフォルトの名無しさん2012/12/03(月) 21:37:35.69
>>655
Linuxディストリビューションのコアのほうに近い新規スクリプトはPythonか移植性の高い書き方をされたシェルスクリプトかどちらか
新規にPerlスクリプトがゼロから書かれることはまずない
0658デフォルトの名無しさん2012/12/03(月) 21:50:13.09
rubyは好きだけどrubyだけ使ってるとマジでアホになってくるな…
まぁこんな多様性の無い会社で働いてる俺が悪いんだけど。
0659デフォルトの名無しさん2012/12/03(月) 21:55:53.97
どちらにしろ「Rubyしか書けない」は阿呆確定なので、Rubyをオモテでほとんど使わないことを気にする必要はない
家で存分に使い倒せ
0660デフォルトの名無しさん2012/12/03(月) 22:14:17.97
>>657
なぜ同じことを二度言う。
0661デフォルトの名無しさん2012/12/03(月) 23:00:52.05
jsだけ書ければ十分←これが真理
0662デフォルトの名無しさん2012/12/03(月) 23:08:34.14
C、C++、Java、JavaScript、AWK、SED、ShellScript、Lisp、Scheme、Prolog、VBA、VB、C#、Obj-C、Clojure、Erlang、Ruby、Pyhton
くらいは標準装備だろ?普通のプログラマなら。
0663デフォルトの名無しさん2012/12/03(月) 23:52:16.54
Perlが抜けてるよ低脳
0664デフォルトの名無しさん2012/12/04(火) 00:16:44.98
shすら書けないとは。
0665デフォルトの名無しさん2012/12/04(火) 00:17:16.70
あった//
0666デフォルトの名無しさん2012/12/04(火) 18:19:55.86
>>662
erlang以外は、どれもスグに習得できる自信がある。
毎日短いスクリプトを書くための標準装備がjsだけで良い。
0667デフォルトの名無しさん2012/12/04(火) 18:22:14.96
多くの言語を行き来するって、本質的に、どうでも良い仕事をしているPGで、
はやい話が会社側からすれば、何時捨てたところで変わりがいくらでも居る人材
0668デフォルトの名無しさん2012/12/04(火) 18:42:36.47
別にこれくらい普通じゃね…?
初心者はえっと思うかもしれないけど、
普通なんだよ。別に特別なわけじゃなく、普通なんだよね。
ごく普通。
0669デフォルトの名無しさん2012/12/04(火) 18:57:24.07
ガリ女が私デブだよ
とかいうのと似てるね
0670デフォルトの名無しさん2012/12/04(火) 22:17:20.17
なにひとつとして(Rubyすら)"極め"てはいないが、使えるかどうかで言えば5言語やそこらは普通に使えるな
HTML5未満とCSSはカウントしないのでよろしく
0671デフォルトの名無しさん2012/12/04(火) 22:24:44.39
近年稀に見るキモいレスを見た
0672デフォルトの名無しさん2012/12/04(火) 22:27:30.38
ここしばらくずっときもい
本スレならまだしも初心者スレでこういう流れは勘弁
0673デフォルトの名無しさん2012/12/04(火) 23:09:00.90
C、C++、Java、JavaScriptなんてきょうび標準スキルでそ。
AWK、SED、ShellScript、Lisp、この辺はLinuxとEmacsを使ってたらごく普通。
んでiOS流行ってんだからObj-C触ったことないプログラマなんているはずない。
VBAなんてそこらへんの事務員さんでも使ってるような言語。
VBやC#なんてWindows使ってたら普通に使うし。
あとSICP読んでない奴なんて居るわけないんだからSchemeは当然みんなできるし、
Ruby、Pythonなんてそこらへんにおちてるちょっとしたスクリプトを拝借していじってりゃ覚えるし、
Prolog、Erlang、Clojure、Smalltalkくらいは教養としてやっとけよってレベルでそ?
0674デフォルトの名無しさん2012/12/04(火) 23:20:26.48
SEDって全部大文字で書くとおくすりみたいですね
0675デフォルトの名無しさん2012/12/04(火) 23:25:00.68
冬だなぁ…
0676デフォルトの名無しさん2012/12/04(火) 23:48:37.63
そういうレベルで使えると言う奴も居るのか。面接で言語数アピールしてくる奴は気をつけよう。
0677デフォルトの名無しさん2012/12/05(水) 00:11:37.33
Twitterとかの自己紹介欄に沢山言語書いたり
ハテブに沢山言語のカテゴリ作っててスカスカってクズだろうなあ
0678デフォルトの名無しさん2012/12/05(水) 00:37:54.08
うちのお勉強サイトがそれだ

虫食いのようにあれこれ摘んでろくな記事が増えない
06791952012/12/05(水) 00:43:33.74
>>661
jsが使えて十分とかは、
ちっこいサイトでnode.jsで
遊ぶレベルならいいよ。
0680デフォルトの名無しさん2012/12/05(水) 01:15:20.09
飯食えるレベルなら何でもいい。素晴らしいことだ。と最近になって思う。

大学生時代の俺は・・・
それなりに高学歴であらゆる言語をマスターして情報科学を学びEmacsを極限までカスタマイズして
家では自宅サーバーを立ち上げてスタバでドヤ顔でmacbookで作業して有名ベンチャーでバイトをしてチヤホヤされ人生勝った気でいた。
しかし社会に出たら勝手が違った。稼ぐためには価値を生み出さなければならないのだ。自分のためではなく人のために働く必要がある。

俺みたいにはなるなよ。
0681デフォルトの名無しさん2012/12/05(水) 01:42:25.97
環境設定の質問いいですか?

Mac OSX Mountain Lion
症状:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
となって実行できない。
バージョン:ruby 1.9.3p194(rbenvでインストール rbenvはHomebrewでインストール)

ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'の出力結果
→/usr/local/etc/openssl/cert.pem(つまりHomebrewで入れたOpenSSLのパス)

なんでエラーになるんだろう?
ちなみにUbuntuでは実行できた。
0682デフォルトの名無しさん2012/12/05(水) 04:28:49.41
680
了解
0683デフォルトの名無しさん2012/12/05(水) 23:21:51.69
>>681
キーチェインアクセスからシステムのルート証明書リストを書き出して
使ってみたらどうでそ?
0684デフォルトの名無しさん2012/12/05(水) 23:39:54.03
おまいらの使ってるIDEを教えてくれ。
0685デフォルトの名無しさん2012/12/06(木) 00:34:32.78
>>684
emacs
0686デフォルトの名無しさん2012/12/06(木) 04:30:27.52
>>680
大学でてたら経営工学概論なんて講義ぐらい取ったんじゃないの?
だいたいベンチャーって、どこも10年ぐらいで潰れるだろ。
とはいえ、ウェブ系でロクロ回してる連中と中堅規模の無能の集まりって、
どっちが最後まで立ってんだろな。巻き込まれたくないバブルだこと
ところで受託開発とニッチでコアな技術って、どっちが社会的に付加価値あるんだろ
0687デフォルトの名無しさん2012/12/06(木) 04:44:22.66
>>673
SICPもprologも内容的に被るから、片方で良いでしょ
web系よかメーカー系の方が、よっぽど技術者らしい人生を送れそう
web系は、もはやエンジニアではなく起業家か事務屋の集合体か何かだ

>>676
経験年数に対して言語数が多ければ大した仕事してないって見るでしょ。普通は。
よっぽどボンクラな採用担当でもなけりゃ、言語や経験年数より、どの業務に従事したか聞くよ
0688デフォルトの名無しさん2012/12/06(木) 04:51:13.49
常時使う言語なんて、多くて2つぐらいが限度でしょ
時間と記憶力の資源は、もっと有意義なことに使えよ
0689デフォルトの名無しさん2012/12/06(木) 10:32:07.35
>>688
例えばWeb屋さんだと、
バックエンドに、Ruby、C、Java、Node.js
フロントエンドに、JavaScript、Java、Action Script、
メンテにShellSsript、
くらいはごく普通に常用してるでしょ?
あなたは初心者なのになんで意見しちゃうの?
0690デフォルトの名無しさん2012/12/06(木) 11:20:46.51
Ruby は無いわ
0691デフォルトの名無しさん2012/12/06(木) 12:30:51.72
Perl PHPのほうがしっくりくるな
0692デフォルトの名無しさん2012/12/06(木) 12:45:17.15
Web屋のバックエンドはPHPだと思う
Rubyはシェルスクリプトレベルの頻度と隠れ具合なはず
「見えない」部分で言語指定がない場合にはシェルスクリプトで書くが、それがRubyになる感じ

まあ、初心者スレ向きの話ではない
「Rubyができるからといって仕事や就職の口があるわけではない」という認識で間違いない
仕事や就職自体は別の技術で受けて、プロダクト本体にならない自由裁量部分でRubyを使う
0693デフォルトの名無しさん2012/12/06(木) 13:51:51.54
Web屋は自信満々だね
0694デフォルトの名無しさん2012/12/06(木) 15:42:39.31
コピペで何とかしようとするとPHP
0695デフォルトの名無しさん2012/12/06(木) 15:43:02.65
配列について質問です
配列の中に配列を入れたくて調べているのですが
ary=[[a, b, c, d, ], [e, f, g, ], [h, i, ], [j, k, l, m, ]]
のように各要素数がバラバラの二重配列って作れないんですか?

最初一つ目の要素(a, b, c, d, )のあとに二つ目(e, f, g, )を追加,というようにぼんぼん突っ込んでたら,
ary=[a, b, c, d, e, f, g, h, i, j, k, l, m, ]という配列になってしまって
本当はary[0]=[a, b, c, d, ],ary[1]=[e, f, g, ]を取り出したいのに
カンマで切れてary[0]=[a, ],ary[1]=[b, ]となってしまったのです
二重配列以外にも対策あったら教えて下さいお願いします
0696デフォルトの名無しさん2012/12/06(木) 16:11:37.96
irb(main):001:0> ary=[]
=> []
irb(main):002:0> ary << %w(a b c d)
=> [["a", "b", "c", "d"]]
irb(main):003:0> ary << %w(e f g)
=> [["a", "b", "c", "d"], ["e", "f", "g"]]
irb(main):004:0> ary
=> [["a", "b", "c", "d"], ["e", "f", "g"]]
irb(main):005:0> ary[0]
=> ["a", "b", "c", "d"]
irb(main):006:0> ary[0][1]
=> "b"
0697デフォルトの名無しさん2012/12/06(木) 16:40:34.69
初心者スレでパーセントリテラル使う自己満は死んでいいよマジで
0698デフォルトの名無しさん2012/12/06(木) 16:49:33.57
まあ今回はパーセント記法のほうが余計にわかりづいらいな

>>695
Array#<< および Array#push は引数のオブジェクトを配列の最後の要素として単純に追加する
要素を配列にしたければ引数に配列を指定すればいい

irb> arr = []
irb> arr << ['a', 'b', 'c', 'd']
irb> arr << ['e', 'f', 'g']
irb> p arr
[["a", "b", "c", "d"], ["e", "f", "g"]]
0699デフォルトの名無しさん2012/12/06(木) 19:24:32.93
rubyについて質問です。

あらかじめrubyで何かしらのサーバを立てておいて
サーバが動いているマシン内で別のrubyプログラムを走らせて
サーバの挙動を変えたいのですが、このようなことは可能でしょうか?

例 別プログラムが動いてない時のサーバはアクセスがあると「A」を返すが
  別プログラムを動かすと「B」を返すようになる。
  (「A」を返すところを「B」を返すように動的に書き換える)
0700デフォルトの名無しさん2012/12/06(木) 19:51:01.75
パーセント記法くらい普通だろ
ググって調べろよカス
0701デフォルトの名無しさん2012/12/06(木) 19:55:18.34
>>699
可能です!
0702デフォルトの名無しさん2012/12/06(木) 20:06:56.71
可能かどうかで言えば可能だが、おそらく90%くらいの確率でアプローチ法が間違ってるな
0703デフォルトの名無しさん2012/12/06(木) 20:32:10.87
>>699
できるかどうかすら他人に訊かないと分からないレベルならもっと大人しいことから勉強しなよ

そもそもここが何のスレかも分かってないみたいだし
0704デフォルトの名無しさん2012/12/06(木) 20:45:28.02
systemuでpidpfかpgrepを叩いて判定すりゃええやんか。
0705デフォルトの名無しさん2012/12/06(木) 20:55:28.66
馬鹿には無理
0706デフォルトの名無しさん2012/12/06(木) 21:16:46.83
>>698
できました!ありがとうございます
%wも分かったのですが実際のデータはスペースも含んでいるので使えませんでした
0707デフォルトの名無しさん2012/12/06(木) 22:22:18.49
フロントにJAVAって使ったことないな
0708デフォルトの名無しさん2012/12/07(金) 04:52:08.29
良いとしこいたおっさんがふぇぇとか言ってると虫酸が走る
0709デフォルトの名無しさん2012/12/07(金) 12:45:15.22
昨日に引き続き配列の質問です
以下のプログラムでうまくいかないのですがどこがおかしいのでしょうか
ary_a = Array.new(0)
k = 3
while k < 10
text = [k] #既に存在しているk番目のテキスト
ary_b = Array.new(0)
counter.count("#{text}") #テキスト中から名前と出現回数を探すモジュールを使用
counter.result.each do |name, count| #名前と回数を配列に入れていく
ary_b << "#{name}"
ary_b << count #この時点で["花子", 1, "太郎", 3]のような配列になる
end
ary_a << ary_b #二重の配列を作っていく
k += 1
end

本当はary_a[0]=["花子", 1, "太郎", 3],ary_a[1]=["花子", 2, "優子", 1]としたいのに
ary_a[0]のカウントにary_a[1]が追加されてary_a[1]=["花子", 3, "太郎", 3, "優子", 1]となってしまいます
お願いします
0710デフォルトの名無しさん2012/12/07(金) 13:00:10.25
>>709
X ary_a = Array.new(0)
O ary_a = [[]]
0711デフォルトの名無しさん2012/12/07(金) 13:05:24.44
>>710
かわりませんでしたorz
ちなみに以下のものはうまく行きます
ary=[]
ary << %w(a b c d)
p ary => [["a", "b", "c", "d"]]
ary << %w(e f g)
p ary => [["a", "b", "c", "d"], ["e", "f", "g"]]
ary=[]
ary << %w(a b c d)
p ary => [["a", "b", "c", "d"]]
0712デフォルトの名無しさん2012/12/07(金) 13:19:39.93
なにも追加動作のない空の配列の生成に Array.new は使ってはいけない、目立ってめんどくさいから
ごく普通に素直にリテラルで [] や [ ] と書くとよい

なにかデータを格納したマイオブジェクトがあって、メソッド引数で動作を指定して、動作結果を利用したいという場合は
my = MyObject.new(init_data)
my.action(condition)
my.result...
ではなく、actionメソッドの戻り値の時点で計算結果を返すようにするとよい(resultメソッド自体は別途存在しても構わない)
my = MyObject.new(init_data)
result = my.action(condition)
result...

んで、おそらく、単にcountメソッドかresultメソッドがバグってる
p k,text,counter.result,'--------------------'
あたりをeachの前に入れて、期待通りの出力になるかどうか確かめてみれ
0713デフォルトの名無しさん2012/12/07(金) 15:57:27.95
>>712
ありがとうございます メソッドがバグってるみたいです
でも私の知識ではメソッドを直すよりもあとから修正したほうが早そうですw
配列からハッシュ作成しているので,{"花子"=> 3, "太郎"=> 3, "優子"=> 1}
から{"花子"=> 1, "太郎"=> 3}を引き算して{"花子"=> 2, "優子"=> 1}を作る方法はありますか?
なんとぐぐれば良いのかあやふやですが調べてみます
0714デフォルトの名無しさん2012/12/07(金) 16:34:09.68
いややっぱりメソッド書き直してみます(`・ω・´)
webで見つけた名詞カウントモジュールなのですが繰り返し利用すると加算されてしまうのはなぜでしょうか
インスタンス変数が空になってないから?初心者すぎてorz
長いので分けます

module Meishi
class WordCounter
NECESSARY = %w/名詞,サ変接続 名詞,一般 名詞,形容動詞語幹 名詞,固有名詞 名詞,接尾 名詞,副詞可能 接頭詞,名詞接続/

def initialize
@result = Hash.new(0)
end

attr_reader :result

# mainループ
def count(text)
words = split_to_words(text)
count_up_result(words)
self
end
0715デフォルトの名無しさん2012/12/07(金) 16:34:40.37
# Mecabで単語に分割し,必要な品詞のみ抽出する
def split_to_words(text)
results = IO.popen("mecab", "r+") { |mecab|
mecab.puts(text)
mecab.close_write
mecab.readlines
}
results.map { |result| necessary?(result) ? result.split.first : nil }.compact
end

# 単語として使うする属性を判断する
def necessary?(feature)
case feature
when Regexp.new(NECESSARY.join('|'))
true
else
false
end
end

# 単語数をカウント
def count_up_result(words)
words.each do |word|
@result[word] += 1
end
end
end
end

以上ですお願いします
0716デフォルトの名無しさん2012/12/07(金) 16:53:07.19
まあそりゃ@resultを初期化せずに何度もcount_up_result呼んだら足されてしまうわな
0717デフォルトの名無しさん2012/12/07(金) 17:13:47.54
>>708
幼女ですが何か
0718デフォルトの名無しさん2012/12/07(金) 18:03:24.27
>>716
ああやっぱり初期化のところでしたか…
調べていたら最初のinitializeが初期化だと出てきたのですが初期化できていないのでしょうか
0719デフォルトの名無しさん2012/12/07(金) 18:09:57.33
……えーと
0720デフォルトの名無しさん2012/12/07(金) 18:12:09.99
あらゆる Rubist は幼女
0721デフォルトの名無しさん2012/12/07(金) 18:52:52.00
>>718
プログラムは思っている通りではなく書いている通りに動く
たいへん残念なことにプログラミングは魔法ではないので、自力で道筋を考えて記述する必要がある

挙げられたメソッドを見る限り、どれがどうやってどう動いているか把握できてないものと思われる
0722デフォルトの名無しさん2012/12/07(金) 18:59:22.34
>>721
カウントするところだけを何度も呼び出してたんですね…
呼び出してカウントする都度@resultを初期化しなければいけないんですね
今なにも考えず@result = Hash.new(0)をぶちこんだらエラーでたので調べているところですorz
0723デフォルトの名無しさん2012/12/07(金) 19:03:24.38
できた!できたできた!!
カウントする度にメソッドまるごと呼び出したらできました!
みなさんありがとうございました!!
0724デフォルトの名無しさん2012/12/07(金) 19:13:07.08
とう

module Meishi
class WordCounter
NECESSARY = %w/名詞,サ変接続 名詞,一般 名詞,形容動詞語幹 名詞,固有名詞 名詞,接尾 名詞,副詞可能 接頭詞,名詞接続/

def count(text)
result = {}
split_to_words(text).each{|word| result[word] += 1}
result
end

def mecab(text)
IO.popen("mecab", "r+") { |mecab| mecab.puts(text); mecab.close_write; mecab.readlines}
end

def split_to_words(text)
words = []
pattern = Regexp.new(NECESSARY.map{|s| Regexp.quote(s)}.join('|'))
mecab(text).each{|line| words << result.split.first if line =~ pattern}
words
end
end
end

たぶん動かない
result メソッドはなくなったので count の戻り値を直接使ってね
0725デフォルトの名無しさん2012/12/07(金) 19:27:29.59
そうか卒論の追い込みシーズンか
0726デフォルトの名無しさん2012/12/07(金) 19:31:13.22
>>724
不憫なコードだなおいw
0727デフォルトの名無しさん2012/12/08(土) 15:00:06.14
以下のお題と仮定して、関数型プログラミングのスタイルで書いてみた
「mecabを使って、あるテキスト中に含まれる名詞の出現回数を集計せよ」

http://play.island.ac/codepaste/code?id=29

ポイントは、メソッド Enumerable#inject を使った配列からハッシュの生成(>>713 ...?)
もし分からなければ、以下の文書を一読してみて!!

・Rubyによる関数型プログラミング
 http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html

・YOUたち!RubyでinjectしちゃいなYO!
 http://melborne.github.com/2012/06/18/i-am-inject-lover-too/
0728デフォルトの名無しさん2012/12/08(土) 15:34:39.28
お題じゃなくて宿題だろ
宿題は自分でやれよ
0729デフォルトの名無しさん2012/12/08(土) 18:24:01.75
テキストの色と背景色をRGBで設定したいのですが、 init_colorを使うといい話を聞きました。ググっても init_colorのサンプルがットしなくてどう書いて良いのかわかりません。どなたかご教示お願いします。
require "curses"
Curses.init_screen
Curses.start_color
Curses.init_pair 1, Curses::COLOR_BLACK, Curses::COLOR_WHITE
begin
Curses.attrset(Curses.color_pair(1))
Curses.addstr("Hello World!")
Curses.refresh
Curses.getch
ensure
Curses.close_screen
end
0730デフォルトの名無しさん2012/12/08(土) 18:29:29.95
int init_color(short color, short r, short g, short b);
init_color ルーチンは色の定義を変更します。 次の 4 つの引数を取ります。
変更する色の番号の後に 3 つの RGB 値が続いたものです (赤、緑、青の各コンポーネントの量についてです)。
最初の引数の値は、0 と COLORS の間である必要があります
(デフォルトのカラーインデックスについては、 Colors のセクションを参照してください)。
最後の 3 つの引数はそれぞれ 0 と 1000 の値の間にある必要があります。
init_color を使用するとき、 画面上にその色が発生したところはすべてただちに新しい定義に変化します。
0731デフォルトの名無しさん2012/12/08(土) 20:06:23.86
たとえば
Curses.init_color(Curses::COLOR_BLACK, R, G, B)
すると、画面で COLOR_BLACK を指定した部分の色が
指定のRGBに変わるんじゃないの?

うちのターミナルだと Curses.can_change_color? が false なので確認できないけど。
0732デフォルトの名無しさん2012/12/09(日) 04:19:10.16
引きこもりプログラマなんですが中二の妹に家から出て散歩でもしろと言われるのですが意味がわかりません。
0733デフォルトの名無しさん2012/12/09(日) 04:49:31.77
で?
0734デフォルトの名無しさん2012/12/09(日) 10:22:08.95
近いうちに地震来るから
嫌でも外に出ることになる
0735デフォルトの名無しさん2012/12/09(日) 10:46:51.45
proc = proc{ a }
[1].each{ |a| p proc.call }

1を出力して欲しいのにブロックのaが参照出来ないみたいでエラーになってしまいます。
proc = proc(a){ a } と値を渡す以外の方法でブロックのaを参照する方法はないでしょうか。
0736デフォルトの名無しさん2012/12/09(日) 15:01:50.79
>>735
[1].each{|a| proc = proc{a}; p proc.call}
0737デフォルトの名無しさん2012/12/09(日) 15:35:52.44
Rubyだとこんなんでもいいんだな
a=0
proc=proc{a}
[1].each{|b|a=b; p proc.call}
0738デフォルトの名無しさん2012/12/09(日) 16:43:43.73
>>735
いわゆる動的スコープの振る舞いを
そのままRubyで実現する方法は無いと思う
0739デフォルトの名無しさん2012/12/09(日) 18:51:22.78
ruby1.8.7を使っています
コードの中にVBAのコードを書いているのですが例えば
i = 1
a = <<EOT
j = i
EOT
のようにVBAの中にそれまでRubyで使っていた変数を入れることは不可能でしょうか
0740デフォルトの名無しさん2012/12/09(日) 19:10:07.18
i = 1
a = <<EOT
j = #{i}
EOT
0741デフォルトの名無しさん2012/12/09(日) 19:13:41.50
>>739
式展開
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html#exp
0742デフォルトの名無しさん2012/12/09(日) 19:16:13.65
>>740-741
できました
ありがとうございました
0743デフォルトの名無しさん2012/12/10(月) 01:59:02.41
構文などはそれなりに覚えてきたので、セオリーのような物を掴むために.rbのソースコードを色々と読んでみたいのですが、
綺麗にまとまっていて分量もそれほど多くない(数百行?)ものでオススメはありますか?
Class周りの実際の使い方がよくわからないのでそのへんが書いてあるといいです
0744デフォルトの名無しさん2012/12/10(月) 02:08:22.10
そのレベルだと本買って勉強した方がいいんじゃないか?
プログラミングRubyとか、オライリーのやつとかベストプラクティスとかそこら辺
0745デフォルトの名無しさん2012/12/10(月) 04:07:27.20
一応たのしいRuby第三版を読んだのですが、そのあたりの本だと色々とコードが豊富なんですかね
ただ使われてるプログラムも読んでみたいです
0746デフォルトの名無しさん2012/12/10(月) 04:22:31.24
事前に自力でうんざりするほどスクリプト書いてないと、セオリーなんて見えないし教えられても身につかないぞ
スレ直近だと>>714-715から>>724の「値の受け渡しにインスタンス変数を使わないで済むならそうする」というのがあるが、これを口で言ってもピンと来ないはず

使いでがあって構造見れそうなのはNet::HTTPとかだろうか
HTTPの知識ないとわけわかめだけど

なんか自分の知識のある分野のスクリプト読んでみるのがいいかと思う
ここで一度も使ったことがなくて用途もよくわからんライブラリを「綺麗だから」という理由で勧めても、たぶん"読めない"
多少汚なくても、自分が使える分野の他人の書き方を眺めるほうが勉強になる
あとあと「あのライブラリってヒドかったのね」とわかればそれはそれで糧
0747デフォルトの名無しさん2012/12/10(月) 04:41:04.10
>>744
プログラミングRubyはさすがに
初心者向けとは言いがたいと思う
0748デフォルトの名無しさん2012/12/10(月) 07:07:48.71
反面教師にはcgi.rbがおすすめ
0749デフォルトの名無しさん2012/12/10(月) 10:07:38.73
これ
http://jp.rubyist.net/magazine/?0015-CodeReview
0750デフォルトの名無しさん2012/12/10(月) 11:37:08.87
C言語に比べてどこがどういう風に簡単なの?
0751デフォルトの名無しさん2012/12/10(月) 12:04:44.26
よりによって比較対象がCかよ…

理屈的には、Cで書かれたマクロの集合体がRubyだ
Rubyスクリプトは、C言語プログラムを細かく動作指示しているに過ぎない
0752デフォルトの名無しさん2012/12/10(月) 12:40:51.71
>>751
>理屈的には、Cで書かれたマクロの集合体がRubyだ

Cでインタープリター、コンパイラを作ってるからという意味なら、かなりの数の言語が相当するな。
0753デフォルトの名無しさん2012/12/10(月) 13:19:47.23
C以外のプログラム言語なんてそもそもそんなもんという気はする
いかに安楽効率的わかりやすくCプログラムを動作させるかの指示の集合体
0754デフォルトの名無しさん2012/12/10(月) 13:20:57.72
>>732
正しい助言だ
散歩すると、
健康によい、うつ状態も改善する、便秘がよくなる、日光でビタミンDができる、よく眠れる、食欲が出る、

よいことずくめ
0755デフォルトの名無しさん2012/12/10(月) 15:27:32.29
>>753
日常的な事務処理用だと、DSLの楽さは捨てがたい。
■ このスレッドは過去ログ倉庫に格納されています