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

Rubyについて Part 29

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/10/29(月) 23:27:18
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
Rubyについて Part 28
http://pc11.2ch.net/test/read.cgi/tech/1187298711/

過去スレ・関連スレは >>2-
0666デフォルトの名無しさん2007/12/25(火) 19:48:03
あとは細かいアルゴリズムを書いておしまいだ。
クラスは作った。
どう悩んでも今のおれでは依存だらけになったら
オブジェクトコンポジションは極力避けた。
ニコニコにFeel the Rubyとかいうドガがうpされているので
見て基本概念を勉強しようと思う。
0667デフォルトの名無しさん2007/12/25(火) 19:50:05
>>665
それで出来るわけがないwww

代入演算子が定義されてないじゃないか。
それじゃreturnして終了だ。メモリが書き換わらない。

それにi, jの2値必要なのにどうしてその形で出来るんだ?
子供だましすぎる。
06686652007/12/25(火) 20:20:27
>>667
……さすがに絶句した

とりあえず何も言わずに次のプログラムを実行しなさい
結果を見て納得したらもう来ないでね、おしまいみたいだし

class Foo
def initialize(data)
@data = data
end

def [](index)
@data[index]
end
end

foo = Foo.new([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
p foo[0]
foo[0][1] = 200
p foo[0]
0669デフォルトの名無しさん2007/12/25(火) 20:20:59
つうか初心者スレでやれと
0670デフォルトの名無しさん2007/12/25(火) 21:34:48
1.9.1は出ない、出るのは1.9.0。

1.9.0が安定版だとか言ってる人はここ数日のChangeLog見直してくるといい。
数日で数百revisionが上がってるものが安定版なわけないだろw
0671デフォルトの名無しさん2007/12/25(火) 21:43:21
どこの京大何だいったい
0672デフォルトの名無しさん2007/12/25(火) 21:44:20
>1.9.0が安定版だとか言ってる人
?
0673デフォルトの名無しさん2007/12/25(火) 22:25:08
1.9.x、のtypoなのかなぁ。
「出るのは1.9.0」からの繋がりが自己矛盾してる気が

さて23:00が楽しみになってまいりましたので
いまから一蘭のラーメン食って来る
0674デフォルトの名無しさん2007/12/25(火) 22:55:44
>>668
確認しました。
どうして出来るのか教えてくれませんか?
例えば標準ライブラリのmatrixでも
2次元のindexには[i, j]という形を採用しています。
[i][j]の方がずっと自然だと思うし、
大体ここでは2つの引数があるのに
その形ではひとつの引数しかもらっていません。
どういう理屈ですか?

それを教えてもらったら初心者スレに戻ります。
次に質問したいことは初心者スレ向けなので
0675デフォルトの名無しさん2007/12/25(火) 22:59:59
>>667みたいな書き方しといてよく質問できるなあ。
謝罪するってことを知らない引きこもりなのかなあ。
0676デフォルトの名無しさん2007/12/25(火) 23:05:18
引きこもりではありません。
正しい原理を教えてもらったら謝罪します。
0677デフォルトの名無しさん2007/12/25(火) 23:06:24
MLに行った方が的確な答えが貰えると思うよ。作者もいるし。
0678デフォルトの名無しさん2007/12/25(火) 23:06:46
Rubyの入門書一冊くらい読んでから来いよ、ばかばかしい
0679デフォルトの名無しさん2007/12/25(火) 23:07:13
そうやって他所に厄介払いしようとするのはやめたまへ
0680デフォルトの名無しさん2007/12/25(火) 23:16:32
m=[[1,2,3], [2,3,4], [5,6,7]]として
m[0]の時点で一次元配列である[1,2,3]への参照がもどってくるから、
それにたいして[2]とか介せば当然変更は出来る。原理という
ほどではなくて、Cの配列の配列とかと一緒。
0681デフォルトの名無しさん2007/12/25(火) 23:27:45
それはわかりました。
しかし
m[i][j]=
の形が定義してないのに使えるのはなぜですか?
0682デフォルトの名無しさん2007/12/25(火) 23:32:29
どうしようもないな
こんなのがソフトウェア工学とか方法論とか言ってたわけだ
0683デフォルトの名無しさん2007/12/25(火) 23:32:48
?
インスタンス、とういか、レシーバが別だからだろ。
それともあれか、a.b.c()とチェインしてたら、aのクラスには
def b.c() という定義が書いてあるとでも思ってたか?
0684デフォルトの名無しさん2007/12/25(火) 23:33:33
そもそも、m[1]= が使えるのは納得できるのか?
06856652007/12/25(火) 23:37:41
お前らそんなことより新リファレンス来てるぞ
ttp://www.ruby-lang.org/ja/news/2007/12/25/rurima-1_9_0/

重いからまだ落としている最中で、中身見てないけど
0686デフォルトの名無しさん2007/12/25(火) 23:41:49
と思ったら、ライブラリのマニュアルしか入ってなかった
0687デフォルトの名無しさん2007/12/26(水) 00:00:36
なんというオチ
0688デフォルトの名無しさん2007/12/26(水) 00:04:13
アンチスレに書くべきだが、マニュアルのweb版を開いた所で
さっそく言葉遣いが統一されていないのが萎える。
こっちもリリースが早すぎるんじゃね?
0689デフォルトの名無しさん2007/12/26(水) 00:13:07
ぶっちゃけ日本語ドキュメントには期待してない。
文章は英語で書いてないと意味ないし。
0690デフォルトの名無しさん2007/12/26(水) 00:17:56
とりあえずリリースおめ
でいいのかしら
0691デフォルトの名無しさん2007/12/26(水) 01:34:59
おめでとう。さて寝るか。
0692デフォルトの名無しさん2007/12/26(水) 01:54:38
見守ったならせめてインストールとなんか動かしてから寝てやれw

しかしなんか触った感じ普通に動く(OSX Leopard)
運用状態でどうなるかが問題だけどね。
一応手前味噌なテストユニットも片っ端試してから寝るか。
0693デフォルトの名無しさん2007/12/26(水) 02:23:29
1.9死んでる。糞杉。

rubyつまんね。
0694デフォルトの名無しさん2007/12/26(水) 03:43:23
ブラックサンタからのプレゼントだな
0695デフォルトの名無しさん2007/12/26(水) 08:48:42
ruby1.9.0の方はまだ触ってないから分からないけど
リファレンスはどう考えても見切り発車
chm版の目次も杜撰だし、これではまだ実用には……
0696デフォルトの名無しさん2007/12/26(水) 09:37:55
バグも大量にあって仕様も不安定なのにリリースか。しかもpreview版はナシなんてありえん。

それも12月25日がモルモン教の記念日だからという理由で。

なんという無茶……。唖然とするしかないな。
0697デフォルトの名無しさん2007/12/26(水) 10:38:37
キーワード引数便利そう。でもこれ、シンボルを値に取りたいときは厄介だな
わざわざ {a: 'sym'.to_sym} と書かなくてはならないみたいだし

ところで、結局ブロックローカル変数の代入(:=)は無くなったんだろうか
手元でやってみるとsyntax errorだった
0698デフォルトの名無しさん2007/12/26(水) 10:46:42
>>696
一番ありえないのは変更点に関するドキュメントのなさだと思う

いずれにせよ、25日のリリースはなかったものとして考えた方が良さそうだ
大人しく1.9.1を待とう
0699デフォルトの名無しさん2007/12/26(水) 11:00:33
「日本製」で信頼できるのはやっぱりハードウェア・製造業だけ

というアピールにはなったね
0700デフォルトの名無しさん2007/12/26(水) 11:23:38
>>699
お前の「日本」はどんだけ Ruby で占められてるんだよ?
0701デフォルトの名無しさん2007/12/26(水) 11:52:09
>大人しく1.9.1を待とう

予定はいつなの?
0702デフォルトの名無しさん2007/12/26(水) 11:55:02
>>697
キーワード引数って入ったの?仕様が決まらなくて見送ったと聞いてたけど。
0703デフォルトの名無しさん2007/12/26(水) 12:12:57
>>701
まだ。検討を始めたところ。何か言いたいことがあるなら今のうちに ruby-dev へ。
0704デフォルトの名無しさん2007/12/26(水) 12:28:35
>>700
誰の日本が、ソフトウェアの分野でも海外にその力を知らしめているんだ?
0705デフォルトの名無しさん2007/12/26(水) 12:31:07
Rubyについて(アンチ専用) Part001
http://pc11.2ch.net/test/read.cgi/tech/1190559748/
0706デフォルトの名無しさん2007/12/26(水) 12:53:01
>>702
一応、今の1.9.0ではキーワード引数使えるようになってる
仕様は確定ではないみたいだけど
0707デフォルトの名無しさん2007/12/26(水) 13:03:25
goruby 1.0は機能が貧弱なのでgolfscriptを標準で取り込んじゃってください!
0708デフォルトの名無しさん2007/12/26(水) 13:05:31
>>700
バベル案内に絡めてるんだろ
0709デフォルトの名無しさん2007/12/26(水) 13:09:20
Matz is nice, so ruby1.9 is nice.
0710デフォルトの名無しさん2007/12/26(水) 13:39:24
つかmake testすらパスしないのかよ!前代未聞だな…。
0711デフォルトの名無しさん2007/12/26(水) 13:48:00
変更点
http://eigenclass.org/hiki/Changes+in+Ruby+1.9
0712デフォルトの名無しさん2007/12/26(水) 13:54:10
>>710
釣りか?普通にPASSするが
0713デフォルトの名無しさん2007/12/26(水) 14:12:03
で、50倍速くなったの?
0714デフォルトの名無しさん2007/12/26(水) 16:07:10
なんかテストが1個失敗する(涙)
0715デフォルトの名無しさん2007/12/26(水) 18:50:55
>>714
まずはプラットフォームを晒さないと。
0716デフォルトの名無しさん2007/12/26(水) 20:35:42
BTSかあ。
Redmineはちょっと起動してみたけどかなりよく出来てるよね。日本語化も完全に
できてるし、あんなのがあっという間につくれるRailsはすごいよ。
ただ、メンテナンスを考えたらRailsはなんとなく信用できないなあ。バッドノウハウが多すぎるし。
Tracはいろんなサイトで採用されてるし、信頼性も高いけどPythonだから却下か。残念。
影舞は素朴でいいんだけどメンテナンスが全然されてないからなあ。ruby公式で引き取って
開発したらどうだろう。しかし、影舞にすると外人はさらに入りづらくなるだろうなあ。

ついでにRWikiも落ちまくってるので変えてほしい。MediaWikiになんねーかなあ。
あのシステム最高なんだけど。信頼のPHPだしさ。まあ、BitChannelでもいいけど。
0717デフォルトの名無しさん2007/12/26(水) 20:55:33
PHPなwebアプリ、信頼性はともかく良く動くよな。ユーザーベースと指向性の差か。
負荷面も良いし(これも信頼性の一因か
rubyスレ的には言語設計とか突っ込む所なのかもしらんけどね

ruby本家としてはrubyアプリで動かしたい所なんだろうね。
MSがwebにlinuxサーバ使ってて笑われた時期もあったし。企業と比較してもしゃーないけど
0718デフォルトの名無しさん2007/12/26(水) 21:54:21
>ruby本家としてはrubyアプリで動かしたい所なんだろうね。

気に入らない時にいじりやすい、ってことじゃないの?
0719デフォルトの名無しさん2007/12/26(水) 22:01:44
>気に入らない時にいじりやすい、ってことじゃないの?

いや、違うと思う。
0720デフォルトの名無しさん2007/12/26(水) 22:58:35
1.9.0ってブランチも切られないの?
開発陣のとってもいらない子なの?
0721デフォルトの名無しさん2007/12/26(水) 22:59:35
>>720
ブランチ切るのが面倒くさいらしいwww
07227212007/12/26(水) 23:00:22
ブランチじゃなくてマージだった
0723デフォルトの名無しさん2007/12/26(水) 23:27:57
1.9.1出たら起こしてくれ
0724デフォルトの名無しさん2007/12/27(木) 02:24:59
そして>>723は永遠の眠りについたのでした
めでたし めでたし
0725デフォルトの名無しさん2007/12/27(木) 07:28:20
>>720
snapshot にいちいちブランチきらないだろ
0726デフォルトの名無しさん2007/12/27(木) 16:18:08
これはひどい

> 何も知らずに1.9.0でRubyデビューしていらん苦労をする人が続出しそう
ちょっと前まではRuby公式から「ダウンロード」でたどれるWindows版Rubyバイナリのページ [ruby-lang.org]が

* ruby1.6.4のzip
* ruby1.6.8のzip
* ruby1.8.6のzip
* ruby1.9.0のzip

という素敵でフラットな一覧になってて「よくわかんないけどとりあえず一番番号が大きくて新しそうな1.9.0をダウンロードしました」という惨事が少なからず起きてました
現在はunstableというディレクトリが掘られてるので今後は少なくなるような気がします
0727デフォルトの名無しさん2007/12/27(木) 17:33:01
1.9 で文字列の扱いは速くなったの?
0728デフォルトの名無しさん2007/12/27(木) 17:33:48
爆速です!!
0729デフォルトの名無しさん2007/12/27(木) 18:40:40
Cygwinだと2つテストが失敗する。Cygwinはいらない子か…。
0730デフォルトの名無しさん2007/12/27(木) 18:49:49
同じく 2 つテストが失敗する FreeBSD 6.2 。
0731デフォルトの名無しさん2007/12/27(木) 19:36:50
>>726
ひどいも何もここの初心者スレが発端だろ
実際に適当に1.9.0をダウンロードして詰まって「不安定版だなんて知らなかった」という話になって
「1.9.0が普通に置いてあるのはちと酷い、unstableとかディレクトリ切っとけよ」
というツッコミがあった

それを見た人が連絡したか提案したか実際に自力でディレクトリ切ったかしたんじゃね
どちらにしても現在はわかりやすくなってるんだし笑い話でいいんでは
0732デフォルトの名無しさん2007/12/27(木) 20:16:01
自意識過剰おつ
0733デフォルトの名無しさん2007/12/28(金) 04:39:29
いやでも、見やすくなったと思う

初心者は、そこからは落とさないが
0734デフォルトの名無しさん2007/12/28(金) 23:54:23
Windows版、CRLFなファイルが変だ

File.open('x', 'w') {|f|
 f.print "0\n1\n2\n3\n"
}
File.open('x') {|f|
 while line = f.gets do p [line, f.pos] end
}
{"0\n", 6]
{"2\n", 10]
{"0\n", 12]

なんだこれ(;´Д`)
0735デフォルトの名無しさん2007/12/29(土) 00:14:21
>>734
えーと、とりあえずf.posするなということでひとつ。
0736デフォルトの名無しさん2007/12/29(土) 00:28:12
>734
1.9系?
手元のruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]でやったら
["0\n", 3]
["1\n", 6]
["2\n", 9]
["3\n", 12]
となったけど。
07377342007/12/29(土) 00:47:52
>>735
(´Д`;)エ−

>>736
そ。1.9.0 の mingw32 も mswin32 も同じ。
f.pos しなければずれないし、LF のみでもずれない。なんでー?

これのせいで移行できん。。。
0738デフォルトの名無しさん2007/12/29(土) 01:06:35
>>737
IO#posはbinmodeでしかちゃんと動かず、動かないだけならいいが破壊的副作用がある。
理由を聞かれても困るが、とりあえず今はそういう副作用がある。
0739デフォルトの名無しさん2007/12/29(土) 01:08:13
1.9.0に移行ってギャグかなんかですか?
0740デフォルトの名無しさん2007/12/29(土) 01:11:28
いや、おれはフィボナッチの計算で食ってるから、
早く1.9に移行したいんだが・・
0741デフォルトの名無しさん2007/12/29(土) 01:12:53
i = 0
# snip
42.times do |i|
foo_bar_baz(i)
end

puts i
これがまともになっただけでも1.9に移行する価値がある。
>>740
UNIXに移行しなよ
0742デフォルトの名無しさん2007/12/29(土) 01:17:16
1.9ってstdio使ってる?
0743デフォルトの名無しさん2007/12/29(土) 01:17:56
フィボナッチ最強王者はHaskellだろ
07447342007/12/29(土) 02:24:24
>>738
THX、既知の仕様じゃ仕方ない、あきらめる。

困らせるつもりはないけど理由ってそんなに複雑なん?
ftell と fseek だけじゃ済まないってことは M17N とかその辺りなんかな。

>>739
赤いモビルスーツに乗りたいんだよぅヽ(`Д´)ノ
0745デフォルトの名無しさん2007/12/29(土) 02:36:55
速度要求するようなところに、Rubyって・・・
適材適所だと思うけど

さっくり、Rubyで、プロトタイプ→C/C++に移行とか
0746デフォルトの名無しさん2007/12/29(土) 02:41:10
また適材適所厨かw
0747デフォルトの名無しさん2007/12/29(土) 02:56:32
>>744
いや、1.9でstdio捨てたからftellが使えなくてもっと難しいことしてるんだよ。
大変難しい問題だ。
0748デフォルトの名無しさん2007/12/29(土) 03:41:58
>>746
購入厨並みに嫌な言い回しだなおいw
0749デフォルトの名無しさん2007/12/29(土) 03:42:37
>>745
別に C++ は普通に使ってるし、要求とかそんなんじゃねえよ
以前からあるデータ整形のスクリプトとか、ちょっとでも速くなるならうれしいじゃん
0750デフォルトの名無しさん2007/12/29(土) 05:34:45
>>746
すげぇ厨だな、おいw
0751デフォルトの名無しさん2007/12/29(土) 06:35:30
そろそろハッカー厨出てきてくれないかな
0752デフォルトの名無しさん2007/12/29(土) 07:31:46
このさいコミット厨とかマージ厨とか流行らして開発者のやる気減退させたら面白

んなわきゃねえな
悪かったよ消えるよ
0753デフォルトの名無しさん2007/12/29(土) 14:01:29
コミット厨www
0754デフォルトの名無しさん2007/12/29(土) 17:15:37
VCS厨参上!
0755デフォルトの名無しさん2007/12/29(土) 23:23:31
まっ厨
0756デフォルトの名無しさん2007/12/30(日) 15:01:36
京大君、未だ納得できず。発想が堅いと思う。
0757デフォルトの名無しさん2007/12/30(日) 15:20:25
面倒くさい偏った考え方だけど、ああいう場だったら親切に教えてくれるから解決
んで「ここの住人はやっぱり駄目ですね」と吐いて終了
0758デフォルトの名無しさん2007/12/30(日) 15:34:21
rpsec 使ってる人いますか?
rspec でいわゆる xUnit の setup, teardown をするにはどうしたらいいんでしょうか。

07597582007/12/30(日) 15:37:39
>>758 すみません、補足です。
ふつうの spec を使ったときには、before( :each ), after( :each ) で setup, teardown と同等の事は実行できるんですが、
RBehave (ストーリー) として使うときには setup, teardown っていう概念はあるんでしょうか?
0760デフォルトの名無しさん2007/12/30(日) 15:39:35
>>757
自分はそれが健全だと思う。
0761デフォルトの名無しさん2007/12/30(日) 15:41:39
setup/teardown相当のことをやることまで含めて1ストーリーなんじゃなかろうか。
07627582007/12/30(日) 15:51:14
>>761
> setup/teardown相当のことをやることまで含めて1ストーリーなんじゃなかろうか。
なるほどです。

そう考えた場合に、Given が setup に対応するんだろうと思いますが、teardown をやるのはどこが適切なんでしょうか?
Then は should be とかのアサーションを書く場所だろうし。。

Given
# たぶんここで setup とかモックとかを作ったりする
When
# テストしたいコード
Then
# should be ... を書く


0763デフォルトの名無しさん2007/12/30(日) 18:15:04
動的型付け言語の保守性ってどうなの?
0764デフォルトの名無しさん2007/12/30(日) 18:36:59
一概に言い切れないから動的静的の二種類が並立してるんだよ
0765デフォルトの名無しさん2007/12/30(日) 18:52:09
他人が書いたプログラムを引き継いだときとかどんな感じだった?
なんか苦労した?
■ このスレッドは過去ログ倉庫に格納されています