[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/16 20:51 / Filesize : 256 KB / Number-of Response : 901
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 22



1 名前:730 [2008/09/15(月) 17:25:21 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

82 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 13:51:21 ]
ちなみにMatrix#[]=云々はこのスレから

thread.gmane.org/gmane.comp.lang.ruby.general/267400/focus=267475
> You can't even divide a Vector by a scalar quantity (you have to v*1/a instead. :/).

いやまあそれはどうでもいいようなw

83 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 14:21:45 ]
>>72
できた。

84 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 14:26:59 ]
rubyをインストールして、
エディタも動くようになったんで、
初心者向けのWEB上の入門サイトを
読みたいんだけど、どれを読めばいい?

85 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 14:30:44 ]
www1.tf.chiba-u.jp/~shin/tutorial/

86 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:24:16 ]
kazato.run.buttobi.net/cgi-bin/material/src/vm002_0329.png

ここのフォントの大きさを、
最初から大きくしたいのですが、
どこの設定をいじればいいですか?

いまは、エディタを起動するたびに
設定しなおしてます。

これを、最初からというか
設定を保存したいのです。

一回ごとに毎回、毎回設定するの
めんどいですからね。

87 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:33:45 ]
RDEで「こんにちは」って打ったら、
めちゃめちゃに文字化けするんですけど??

それでいて、実行すると、ちゃんと表示されるんですけど??

88 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:37:13 ]
RDEってもしかしてPerlでも使えるの?

89 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:47:14 ]
>>87-88
聞くよりもまず自分で模索するようにしてください

文字化けはたぶんエディタのフォント設定のせい。perlでも一応使える

90 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:48:14 ]
>>87
は自分で調べたら解決したのでもういいや



91 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:48:55 ]
>>89
perlで使うときは、perlのexeはどこに設定するの?
もしかして、rubyのexeのところにいれるの?
キモー

92 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:40:15 ]
a = open('www.2ch.net/warn.txt') {|f| f.read }

これが動きません。
ひょっとして、ウチだけ???

93 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:41:34 ]
require 'open-uri'
a = open('www.2ch.net/warn.txt') {|f| f.read }
print a;



↑これで動きました。

マジで感動。

94 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:46:17 ]
長い行で改行入っちゃうときはどうしたらいいの?

print
"a";

95 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:06:34 ]
>>94
ここはあなたの質問場ではありません

96 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:51:05 ]
RGSS2なんですけど、requireが使えなくて、
必ず、
Kernel.require("C:\\1.rb")

とかって書かないといけないんです。それで、
open-uri.rbを開くと、その中で、また
require uri
とかって書いてあるじゃないですか。またrequireです。
ここでエラーが出るので(requierは使えないよっていう)
すべてのライブラリの中のrequireをKernel.requireに
置き換えないといけないのかな、、、って今思ってますけど、
どう思いますか。

97 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:02:19 ]
RGSSは内部動作が独自改変されたRubyなので、普通のRubyの知識では太刀打ちできない
RGSSのマニュアルなりなんなりを読んでくれ

98 名前:21 mailto:sage [2008/09/19(金) 20:33:30 ]
出張のため返信が遅れてしまいすみません
>>25
おお!ありがとうございます!
しかし見てみましたがかなり複雑な感じなんですね・・・
やっぱ色んな状況を想定したり文字コードなんかの処理等でこんなになってしまうんでしょうか
とりあえず俺のような初心者には無理っぽいですのでiPhoneで同じようなこと考えている人がいないか聞いてみることにします

ありがとうございましたおまいら

99 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:53:37 ]
>>96
def require(file)
Kernel.require file
end
ってしておけばKernelいらないと思う。
あとRGSSなら同人ゲ板のツクール質問スレのほうがよさそう。

100 名前:デフォルトの名無しさん [2008/09/19(金) 21:21:47 ]
windowsでrailsをテスト的に使って見ていますが、
"ruby script/generate ..."とか"rake db:migrate ..."
とかスクリプトを実行すると、とんでもなく長い間待たされます。
どうしてこんなに遅いんでしょうか?
Core2Duoを使っていますが、20秒以上も待たされるので。。。。

何かよい解決策はないでしょうか?





101 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:42:18 ]
>>100
windowsとrubyの相性が悪いから。
ruby script/generate をすると、
1. 新しいrubyプロセスを起動し、
2. railsと関連ライブラリをすべて読み込んでから
3. scaffoldを実行するから、
そりゃ遅い。とくに 2. が。

102 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:42:25 ]
>>94
明らかに文が終わらないことが分かる場合、たとえば
開いたカッコがまだ閉じてないとか、二項演算子の第2項をまだ書いてないとか
の場合は語句(トークン)の間で行を変えていい。
そうでない場合(そこまでが文として正当に解釈しうる場合)は
¥ (円記号またはバックスラッシュ)を書いてから改行。


103 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:42:53 ]
>>98
>>21のあとに

require 'kconv'
fetch_result = imap.fetch(1..-1, "BODY[HEADER.FIELDS (SUBJECT)]")
print fetch_result[0].attr["BODY[HEADER.FIELDS (SUBJECT)]"].tosjis

ってしたら一通目のメールの件名がSJISで表示された。
公式マニュアル内をsubjectで検索かけたらすぐわかったので
落ち着いてじっくり読めば大抵のことは解決するのでは。
つーかnet/imapの本なんてなくね?

104 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:48:36 ]
>>>103
そもそもIMAPについての知識がロクに無いんだろ
IMAPについての知識があるならnet/imapだけでできるはず
そういう場合は「めんどくさいけどどうすればいいですか」という聞き方になる

メール関連は簡単に扱って欲しくないから、これくらいでいいと思う

105 名前:デフォルトの名無しさん [2008/09/20(土) 01:17:39 ]
>>101
開発に使っているマシンは圧倒的にwinが多い
そのwinでまともに動かないrailsは、
やはり個人の趣味サイト作りでしか使ないのか?

海外では非常によく利用されているpythonのdjangoは、
winでもストレス無く使える。


106 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 01:38:14 ]
運用にwinなんて使わないだろ?


107 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 01:40:59 ]
>>105
>開発に使っているマシンは圧倒的にwinが多い

Railsだと、世界的にはMacかもしれんぞ。(要調査)



108 名前:デフォルトの名無しさん [2008/09/20(土) 01:59:53 ]
>>107
わざわざRailsを使うためにMacを買うか?
しかも会社ならなおさらだ。
だからRailsは圧倒的に個人しか使わないんだろうー
やはりちょっとしたサイトはPHP、
中規規模以上はJavaに落ち着いているんじゃない。


109 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 03:35:19 ]
個人 →   rails
数人 →   PHP
中規模 → JAVA

110 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:16:22 ]
>>105
>開発に使っているマシンは圧倒的にwinが多い
Rails使いはMacのほうが多い
RailsConf行ってみな、冗談じゃなくてほぼ全員Macだから。
いまだWindows使っているのはJava屋さんだろう



111 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:37:09 ]
MacBookとかよくあんな重くて高いマシン持ち歩けるよな・・・
無印 2.27kg       ¥129,800〜¥179,800 ←重すぎ!
Air  1.36kg       ¥229,800〜¥325,400 ←高すぎ!
Pro  2.45kg〜3.08kg ¥249,800〜¥329,800 ←重すぎ高すぎ!

もっと実用的なモデル出してくれたら考えるわ

112 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:42:08 ]
RGSSなんだけど、
ツクールXPがRGSS1で
ツクールVXがRGSS2なのね。

そんで、RGSS1はrequire の使用がOKで、
RGSS2はKernel.require って書かないとだめなのね。

そんで、rubyに付属のライブラリ見ると、
中味が全部、require 'uri'
こういう形式で書いてあるのね。

そんで、そのままRGSSで書くと、エラーになるの。

113 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:44:04 ]
require 'uri'    ←(1)
↑この形式だとエラーが出る。

require("C:\\uri.rb")  ←(2)
↑この形式だとエラーが出ない。

絶対指定だとエラーがでない。
相対指定?だとエラーがでる。
(2)で書いても、その1行だけはエラーにならないけど、
その行で呼び出したライブラリの中味は
(1)の形式で書いてあるので、そこでエラーになる。

どうしたらいいかな?

114 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:46:14 ]
もうプログラミング辞めたほうがいいな

115 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:58:10 ]
questionbox.jp.msn.com/qa944237.html?StatusCheck=ON

一応ここにも書いてあるけど
いったいどうしたらいいかな。

116 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:06:06 ]
RGSSでのライブラリrequireの方法

   $: << File.expand_path(".")
   require "ファイル名"
   Game.exeを起動したディレクトリにあるライブラリをロードする
   "."を相対パスに変更すれば、好きなディレクトリを指定できる


↑あとこれをよくみかけるんだが、
どういうことなんだろう??

117 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:16:18 ]
>>112
上でも書いている人がいるが、RGSSはRubyを改造したもので、
改造部分に関するエラーは俺たちには全くわからない

エラーが出る理由も、わざわざそうしている理由もわからない
売り物なんだし、改造した人に聞け

118 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:29:19 ]
RDE

出力をDOSプロンプトにするのってどうやるの?

119 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:48:23 ]
puts 'abcde ' * 20000

たかがこれだけの出力するのに何秒かかってんだよ

perlだったら3秒で出るのに。

120 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:50:20 ]
Rubyに早さを求めるやつなんて初めて見た



121 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 08:50:25 ]
>>119
まあそのへんはコマンドプロンプトに文句言ってくれ
Rubyの処理自体は3秒くらいで終わってる

122 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:05:04 ]
RDEで出力を下でなくて
DOSプロンプトに出すにはどうしたらいいの?

123 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:12:05 ]
Windowsではirbとかでもイライラするな
irbは返り値の表示の設定ができるが

124 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:19:25 ]
最初からDOSプロンプト立ち上げて、
そこから直接コマンドラインで実行したら
3秒でできた。
でもRDEから実行したいんよ。
どうしたらいいかな?
DOSプロンプトに出力する方法ね。

125 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:33:56 ]
>>110
東京Ruby会議で「主にMac使ってる人」って質問で6〜7割手をあげてたような気が

126 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:38:12 ]
MacというかMacOSXとUNIX系開発言語(って何?)との親和性の高さはガチ
Windowsでもプログラミング環境エディションとか出せばいいのに

127 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:45:10 ]
まあみんなカッコよく安楽にプログラミングしたいんだよ
でなけりゃあどべ使い以外にMacが売れる理由がないし、Emacsが死なない理由がないし、Rubyが支持される理由もない

128 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:32:09 ]
TextMateだっけ?あれが人気あるらしいね。開発に。
Windowsにも E Text EditorとかIntypeとしてクローン作られてるっぽいけど。

129 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:56:29 ]
>>128
クローンはどいつもこいつもシェアウェアでな

いや、別にいいんだが、入金めんどい
成功したら安価版とか作ってくれ

130 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:59:26 ]
日本はベクターにないと買うの面倒でかなわん



131 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:42:29 ]
str = 'hoge'

これを説明するのって、「ローカル変数 str に 文字列 'hoge' を

   代 入 す る



でいい? 厳密には代入ではなくて他の表現が妥当だとかそういうのはない?

132 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:48:28 ]
…めんどくさいので代入でOK
最近の議論とか空気とかを元にしてる初めてのRubyではどう書いてある?

とりあえず、誰も文句は言わないと思うよ
束縛するとか言う言い方してる奴がいたら鼻糞ほじっとけ

133 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:51:57 ]
オブジェクトとインスタンスってRubyではどう使い分けますか?

134 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:59:47 ]
>>131
つうか代入ってなによ?

135 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:06:38 ]
>>134
データと名称の関連付け。なまえをつけること。Naming convention。
Rubyでは初期化宣言と同時に行われるのでちょっとわかりにくい。

というのでどう

136 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:23:59 ]
なら「名前をつける」って説明の方が通りがいいんじゃねえか、とおもた。

137 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:27:35 ]
RDEで実行を途中で止めるのってどうすればいいの?
ctrl+C押しても止まんないんだけど。

138 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:37:30 ]
止めるボタンあります

139 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:38:26 ]
緑△アイコンの実行ボタンの隣に、
□アイコンの強制終了ってあるでしょ

140 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 15:22:28 ]
他の言語で代入という概念を知ってるなら代入でいいだろ。

a = Hoge みたいな表現が、名前付けなのは Haskell とかだけど、
そっちとは明らかに違うし。



141 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 16:59:07 ]
RDEはうだつが上がらないし
RDTは糞重いし
もうEmacsしかないじゃないか!

142 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:20:29 ]
>>133
クラスをインスタンス化したものがインスタンス

143 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:22:08 ]
NetBeans使えば。

144 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:35:57 ]
NetBeans以上に重いものなんてこの宇宙に存在するの?

145 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:36:51 ]
責任,ですかね.

146 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:57:24 ]
>140
他の言語っつってもCの代入とは明らかに違うだろうに。
Haskellの代入とも違うけどさ。

147 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 22:32:07 ]
str = 'hoge'
のように代入された状態で str を使うと 'hoge' という情報を取り出せるという点では
どの言語もだいたい一緒だわな

148 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:27:20 ]
Rubyだけしか使えないのはかっこ悪いのでphpを勉強する

if strpos('ABCDE', 'ABC'){
echo 'true';
}else{
echo 'false';
};

とか書いてみたんだが、どうやらelse部が実行されるらしい
strposは'ABCDE'の中から'ABC'の位置を探して返すんだが、整数の 0 が返ってて、0 はPHPでは偽なんだそうな
なんとなくがっかりさんだ
というか、Perl4 を勉強してたころは真偽判定ってどう書いてたんだっけ、覚えてないな

149 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:31:42 ]
…そういうのはチラ裏スレでやれ

Ruby は nil や false が返って来ない限り真だからな
真偽判定はどんどん書けて気楽だ

150 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:38:04 ]
そういやずっと前から思ってたんだけど、Perl とかで整数の 0(や文字の "0")が真偽値の偽とみなされるようになったのってなんで?
ヌル文字とかの関係? 関係ないよね?



151 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:48:35 ]
スクリプト言語の初心者スレっぽくてよろしい

>>150
0 を偽にしなかったら 1 を偽にしなきゃいけなくなるじゃないか(-1 でも可)

152 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:49:01 ]
さすがRubyスレ
知能が低い

153 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:50:28 ]
>>150
Cから発想すればふつー0が偽になるんだろう。
CにもPerlにもboolean型は無いしな。

154 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:19:55 ]
www1.tf.chiba-u.jp/~shin/tutorial/index.rb?Chapter=10

これってサブルーチンと何が違うの?

155 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 07:53:29 ]
Cで関数のポインタを扱うのとさして変わらない。

156 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 08:00:34 ]
>>155
定義された場所のスコープ(Binding)を受け継いでいるところ

157 名前:156 mailto:sage [2008/09/21(日) 08:05:56 ]
アンカ間違えだけど、指摘と受け取ってもらっても結構
×155
○154

158 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 08:23:27 ]
>>154
手続きオブジェクトは原理的にはサブルーチン、雰囲気では関数ポインタでおk
オブジェクトになってしまってるとこと、>>156の言うように定義時の環境が保存されてるとこが一般的なものとは違うけど

サブルーチンオブジェクトと呼んでもよかったシロモノで、Rubyではたまたま手続きと呼んでるだけに過ぎない
プロシージャ(Proc-edure)とサブルーチンに決定的な違いがないのと同じ

159 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 09:31:58 ]
>>146
> Cの代入とは明らかに違うだろうに。

どう違うの?

160 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 11:17:02 ]
>>133
適当。分かりやすい基準はたぶん無い



161 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 11:22:28 ]
rubyのxamppはどこにあるの?
rubyのCGIとか、railsとかやってみたいんだけど。

162 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 11:39:21 ]
>159
根本的には同じデータのコピーなんだが
Rubyは基本的に「オブジェクトへの参照」を扱うため
代入が基本的に「参照のコピー」になるのに対し
C/C++は参照というクッションが必ずしも存在せず
いきなり「オブジェクトそのもの」を扱うことが出来てしまうため
(参照を扱うなら明示的に参照を扱うよう書く必要がある)
代入が「実体のコピー」(Rubyでいうa=b.dupに近い…がこれも同じではないな)になることが普通にある

163 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 11:45:01 ]
>>161
InstantRails

164 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:04:46 ]
>>162
構造体(オブジェクト)のコピーが起こること、を問題とするわけね。

変数の実体が値である(C/C++)か、変数の実体が参照である(Ruby/Java/Python...)か、
という点が違いであって、名前に実体を関連付ける、という「代入」で問題ないんじゃないかと。

165 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:56:02 ]
>>150
>そういやずっと前から思ってたんだけど、Perl とかで整数の 0(や文字の "0")が真偽値の偽とみなされるようになったのってなんで?
>ヌル文字とかの関係? 関係ないよね?

Perlは考え方としてCの延長にあるから、booleanがない(つまりfalseがない)からかわりに 0 を偽としている。
RubyはLispやSmalltalkに影響を受けているから、nilとfalseだけを偽にしている。
nullじゃなくてnilってところがポイント。

166 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:01:01 ]
0 が選ばれた理由にはなってないな
ビットの 0 と 1 で 0 が negative だったから、が答かと

167 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:30:26 ]
"0" が偽である理由としてはちょい苦しいかもな
"0" が 0 に同一視されてると見るか

168 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:32:33 ]
perlとかphpは型が曖昧だからまあそんな挙動もするでしょう

169 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:37:26 ]
あっちの言語って型付けが弱いんじゃなかったっけ
自動変換されるという便利だが怖い仕様・・・・・・

170 名前:730 mailto:sage [2008/09/21(日) 13:40:32 ]
perlもphpも糞ですよ



171 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:49:43 ]
>>148
めんどくさいよな
というかRuby(が参考にしたLisp系列)が条件文のこと優先して動作を作ったというのが正しいのかも

172 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:00:41 ]
0が偽のくせに「真としての0」が返って来る関数があるというのがまあ変といえば変
変態だったら誉め甲斐もあるんだが、ただ変なだけでは…

173 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:04:12 ]
まあ便利なんだけどねPHP

174 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:08:33 ]
それは認めるし、普及言語はどれも大なり小なり批判されるものだが
この挙動は……

175 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:09:24 ]
他の言語を学ぶという姿勢は賞賛に値する
Rubyしかできないとかマジ生ゴミ

176 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:27:08 ]
>>174
うん、だから、偽といえるかどうかではなく、そもそも型が同じであるかどうかを一緒にチェックする
PHP の ==(否定は!=) での比較は単に値が等しいことをチェックするが、 === は型も等しいことをチェックする(否定は!==)

>>148でしたい処理は

if (strpos('ABCDE', 'ABC') !== FALSE){
echo 'matched';
}else{
echo 'unmatched';
};

とか書くのが素直
!= で比較すると 0 が整数であるという情報がチェックに用いられないので常に結果が偽になってしまう

このへんは strpos のマニュアルにもサンプルコードつきで警告として載ってたりする
ttp://jp2.php.net/strpos
個人的には Ruby の gsub の挙動が極悪なのと似たような構造上欠陥じゃないかと思う

177 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:31:32 ]
あー、gsubも最初に用意されてる引数の構文の挙動が気難しくてブロックが推奨だったな

178 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:42:20 ]
まぁ値が数値型にも文字列型にもなるのはawkからの伝統だしな

179 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 02:23:34 ]
>>163
ありがとう。できたよ。
クッキングなんとかがうごいた。

で、次、これの開発ってどうやればいいの?

180 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 03:37:13 ]
railsのIDEは何を使えばいいの?



181 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 07:16:08 ]
いい加減、本買うかぐぐるかしようぜ。

182 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 10:27:50 ]
おっと質問の仕方が悪かったかな。
数あるIDEの中で、どれを使えばいいのかということ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef