1 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:56:36 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 ★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では有名ライブラリやアプリが 1.9.1 に完全には対応していないためです) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5 あたりを見てください。Ruby on Rails の質問は Webプログラミング板の 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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
231 名前:227 mailto:sage [2010/03/27(土) 20:54:42 ] >>230 特異メソッドにそんな使い方があったとは 単純にクラスに属すメソッドの定義だと思っていました ありがとうございます
232 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 20:56:33 ] >>230 うひょうこの定義のしかた超きめえ今度から使おう 素直に extend する人用 module RunExtender def run; @run; end end r = Runnable.new r.extend(RunExtender) r.run
233 名前:デフォルトの名無しさん [2010/03/27(土) 21:00:57 ] >>231 発想の順番からいうと、特定のインスタンスだけで使えるように 定義するのが特異メソッド。 で、RubyのクラスってのはClassクラスのインスタンスだから、 その特異メソッドはいわゆるクラスメソッドの位置づけに相当するということ。
234 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:05:09 ] ていうか>>219 のもこれで用済まないかね
235 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:33:45 ] 普通のメソッドから特異メソッドにアクセスできないみたいですが、 どうにかなりませんか?
236 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:43:16 ] >>235 >>231 と仮定すると、どうにもならない そもそも所属が違うから、特異メソッドの存在を知らないインスタンスメソッドは特異メソッドにアクセスできない そうでないのなら、特異メソッドは new されたオブジェクトではなく new するのに使った Class オブジェクトの持ち物なので self.class.hoge で使え
237 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:44:57 ] >>236 thx
238 名前:デフォルトの名無しさん [2010/03/27(土) 22:45:24 ] できるよ。 irb> class Object; def hello; hello2; end; end irb> o = Object.new irb> def o.hello2; puts "hello"; end irb> o.hello hello
239 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:52:12 ] 配列にはattr_writerでアクセッサを指定することはできないんでしょうか?
240 名前:デフォルトの名無しさん [2010/03/27(土) 22:53:26 ] >>239 どういうメソッドが欲しいの?
241 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:02:07 ] メソッドがほしいというより使い方が知りたいのです attr_writerを指定すると読み書き両方ともできなくなったので 根本的に配列にattr_readerやwriterを使うのは間違いなのですか?
242 名前:デフォルトの名無しさん [2010/03/27(土) 23:05:09 ] えーと、 class Array attr_reader ??? # ここに何書いたの? end
243 名前:デフォルトの名無しさん [2010/03/27(土) 23:07:14 ] たとえば、配列にhogeという書き込み専用属性を作りたければ、 class Array attr_writer :hoge end a = [] a.hoge = 10 a.instance_variables #=> [:@hoge] のようにできるけど。
244 名前:239 mailto:sage [2010/03/27(土) 23:08:53 ] こういう風にしました readerArray = Array.new(3, 0) attr_reader :readerArray
245 名前:239 mailto:sage [2010/03/27(土) 23:17:04 ] 質問のしかたが悪くてすみません・・・ こういう感じだとクラス内の配列は読み取りや書き込み専用にはならないのでしょうか class Foo def initialize @readerArray = Array.new(3, 0) @writerArray = Array.new(3, 0) end attr_reader :readerArray #ダメ attr_writer :writerArray end
246 名前:デフォルトの名無しさん [2010/03/27(土) 23:32:41 ] >>245 オブジェクトを作ってみる。 > f = Foo.new #=> #<Foo:0x000001010e23b8 @readerArray=[0, 0, 0], @writerArray=[0, 0, 0]> @writerArray 書き込みアクセサで書き換える。 > f.writerArray= [1,2,3] #=> [1, 2, 3] 読み出しアクセサはない。 > f.writerArray #=> NoMethodError: undefined method `writerArray' for #<Foo:0x000001010e23b8> リフレクションで取得は可能。 > f.instance_variable_get(:@writerArray) #=> [1, 2, 3] @readerArray 書き込みアクセサはない。 > f.readerArray = [10, 20, 30] #=> NoMethodError: undefined method `readerArray=' for #<Foo:0x000001010e23b8> リフレクションで書き換えることは可能。 > f.instance_variable_set(:@readerArray, [4,5,6]) #=> [4, 5, 6] 読み出しアクセサで取得。 > f.readerArray #=> [4, 5, 6] attr_reader しかしていないと言っても、それで得られたオブジェクトが読み取り専用になっているわけではないので、 > f.readerArray.pop #=> 6 > f.readerArray #=> [4, 5] のようなことは起こる。
247 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:03:47 ] Rubyにアクセサという機構はない attr_* は同名のインスタンス変数を返す(か代入する)メソッドを自動で作成するだけ def arr @arr end def arr=(a) @arr = a end メソッド定義を自力で書くのを避けたいときに使うだけで、特別な動作はしない def を書く代わりにできるだけ
248 名前:239 mailto:sage [2010/03/28(日) 00:11:30 ] >>246 なるほど アクセッサで指定した配列オブジェクトそのものは読み、書き専用になるけれども、 その中身のwriterArray[0]とかはwriterArrayのオブジェクトから読み込みができないので 各要素オブジェクトにもアクセスできなくなるので、writeArray[0] = 1 はできなくなり readerArrayの場合は、readerArrayの読み込みはできるのでreaderArray[0]にアクセスできるけれども readerArray[0]の要素オブジェクト自体は読み取り専用じゃないので readerArray[0] = 1 ができてしまうんですね 大変参考になりました >>247 やっぱり横着してはならないのですね 夜遅くまでありがとうございました
249 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:15:03 ] ぶっちゃけ、attr_ はもう名称変えたほうがいい こんだけ広まったらもう混乱の元にしかならん
250 名前:デフォルトの名無しさん [2010/03/28(日) 00:15:55 ] rubyでmail送信したいんだけどXPHomeeditionではできない? できれば携帯におくりたいんだけどできるかな? ただしSMTPサーバがない状態で。 VB.NET & XP Professionalなら簡単にできたんだど。 だれかそのあたり詳しい人いますか? 条件は XP Home Edition 携帯にmail送信。(異常時に) SMTPサーバなし(外部サーバ通じてではできるらしい。VB.NET & Professional なら不要)
251 名前:デフォルトの名無しさん [2010/03/28(日) 00:15:58 ] f.writeArray[0] は f に writeArray というメソッドがあってそこから 返ってくる配列に添え字アクセスする意味。 attr_writer :writeArray では writeArray= というメソッドしか 作られないからダメってことですな。
252 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:20:48 ] どうでもいいけどLCCで書くのやめて欲しいなあ Rubyではスネークケースで書いて欲しい そういやスネークケースって言葉ぜんぜん流行らないよね write_array みたいな全小文字でアンダースコア区切りの書き方ね
253 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:24:46 ] >>250 require 'net/smtp' 使い方はマニュアル読め
254 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:25:48 ] >>252 禿げ同。 初心者がスネークケースで質問するスレ立ててよw
255 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:29:24 ] >>252 Rubyではあらゆる点でアンダースコア区切りが主流だと思って ライブラリのトップファイル名をアンダースコア区切りにしたら叩かれたでござる require 'hoge_lib' ではなく require 'hoge-lib' となるように作ろうね require しないファイルはアンダースコア区切り
256 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:30:49 ] 個人的にはピリオド区切りが好き
257 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:59:00 ] 私初心者だけど クラス命はFooBar メソッド命もFooBar 変数名はfoo_barって感じで書いてた こういうの嫌われるの?
258 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:00:21 ] >>257 間違えた クラス名 => FooBar メソッド名 => fooBar 変数名 => foo_barでした
259 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:03:37 ] >>255 マジか。アンダースコアで作っちゃった。 でも、active_recordとかもアンダースコアだし、いいよね? ちなみに、その指針みたいなのどっかに書いてある?
260 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:16:19 ] >>258 Rubyではメソッドを呼ぶ行為とローカル変数を呼ぶ行為は字面で区別しない LCCを使用するのは特定の外部ライブラリのラッパーとかの特殊用途向け メソッド名と変数名は全部小文字でアンダースコア区切りが普通 ちなみに大文字メソッド名でも定義はできるし動作もする(ただしレシーバ必須で self.Hoge 等と呼ぶ) 余談だが日本語でもできる(文字エンコーディングに注意) >>259 そもそも active_support なのか active-support なのか activesupport なのかわかりにくいから 新しいメソッドはもうまとめようぜという話になったと記憶
261 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:21:58 ] こんなとこでどうでもいい宗教論争吹っかけんなよ糞うざいから
262 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:25:50 ] >>261 別に従わなくてもいい 全部のメソッド名を日本語にしても構わない DSLで自分のルールを作るのさえ自由だ end を } にするように書き換えてコンパイルすることを別に止めはしない ただ、それは孤児になる
263 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:00:57 ] Java が 1.1 系列になるときに、クラス定義の規則や、命名規則を厳格にすることで、 JavaBeans が成立し、開発環境でそれらを扱えるようになった。 マウスのD&Dで、イベント定義をしたり。 引数なしのコンストラクターを定義して、 setter/getter とか boolean は isProperty() にするとかそんなの。 命名にも、そういう実益があればいいんだけど、単にスタイルの問題だと従う意味が分からない。
264 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:13:14 ] 教祖が適当に決めてるのが現状だしな。 perl互換にしたがる傾向が強いが。
265 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:24:29 ] >>263 Rubyは本当に本当に自由に書くことができるので、逆に記法が散逸してしまったのだな スタイルというよりはデファクトの決定 読めない上に入力方法もわからない外国語UTF-8クラス名の外国語UTF-8メソッドを使いますとか言われても困る rubygems は gem install のインストールディレクトリ名と require のファイル名を別個にすることができるので たいそう混乱した これは Hoe や Jeweler のサポートで軽減されてきている 別に従わなくてもいい 特に外部に公開しない場合は 公開するような場合でも、別に守らなくても構わない ただし、それに伴って何か不利益を被ったとしてもそりゃ自己責任で 俺と違うやり方の世界のほうが悪いんだと叫んでくれ
266 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 08:12:01 ] jrubyのライブラリはネイティブな実装ですか?
267 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 09:54:00 ] 「RubyはGUIに向かない、Pythonにしとけ」ってのは、どういうこと? Pythonには、LinuxでもMacでもWindowsでも動くことができるGUIライブラリが標準で用意されてるんでしょうか。
268 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:04:22 ] というかRubyのGUIは全部間借りなのよ Ruby/TKはTcl/Tkというものを使ってて、Tkの勉強が必要 Ruby/GTKはGTKの、Ruby/QtはQt(Qt4)そのものの勉強をする必要がある Rubyの文法とか考えとかそういうものとは全く別のものを勉強しなければならない 「GUIはRails並に別」と言われる所以 「わざわざRubyから呼んで苦労背負い込むくらいなら 直接そのプログラミング言語を学んで直接起動させたほうがマシじゃね」という
269 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:07:09 ] > Pythonには、LinuxでもMacでもWindowsでも動くことができるGUIライブラリが標準で用意されてるんでしょうか。 これに全く答えてないわけだが。 Pythonには間借りでないGUIライブラリがあるわけ?
270 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:15:22 ] この際だから はっきり言ってしまうと Pythonの場合 wxPythonならwxWidgetsは覚える必要はないし PyQtならQtを覚える必要がない TkinterだけはTcl/Tkを知らないと使えないとは思うけど
271 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:35:23 ] Tclの難しいところ(変数/コマンド置換、制御構文のブレース等)はRubyがやってくれるから Tcl知ってる人がTk使えるようになるのと Ruby知ってる人がRuby/Tk使えるようになるのに必要な勉強の量は大差ないだろう 問題はLinuxでRuby/Tkが使えるようになるまでだけど RubyでGUIやりたいって言ってる人はたいていWindowsユーザなんじゃないか だとすればActiveScriptRuby入れてActiveTcl入れるだけでRuby/Tkが使えるようになるから PythonでTkinter使うのとたいしてかわらない とういわけでRubyでGUIスレの発展を切に願います
272 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:39:34 ] Ruby/Tkが学習距離的にいちばんマシではある 「とりあえずウィンドウとかボタンとか入力欄とか出せればなんとかなんじゃね」 というコンセプトがRuby寄りだ 「Tcl/Tkでいちばん難しいのはTcl」という本末転倒な症状もRubyなら軽減 が、Rubyを一通り学んでからGUIに手を出すという順番自体は重ねて推奨
273 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:48:22 ] >>270 それは>>269 の答えになってるの?それともただの独り言?
274 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:50:05 ] >>273 半分くらい答えになってるんじゃね?真偽は置いておいて。 というか何故そんなに喧嘩腰なんだ
275 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:54:18 ] wxPythonなんかも結局wxWidgetsのマニュアル見ることになるから あんまりRuby/Tkなんかと変わらないよ その辺はどこのGUIインタフェースも一緒
276 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:56:24 ] 深い使い方しないという範囲限定の話だと思う
277 名前:267 mailto:sage [2010/03/28(日) 11:02:09 ] >>268 プログラム言語によらず、GUIライブラリなんてそんなもんだと思っていたので、 RubyじゃなくてPythonだと何が嬉しいのかを知りたかったのです。 >>270 > wxPythonならwxWidgetsは覚える必要はないし > PyQtならQtを覚える必要がない GUIライブラリ固有の知識がなくてもPythonの知識だけでGUIが作れるということでしょうか。 これはにわかには信じられないのですが、ちょっとPython勉強して出直してきます。
278 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:08:16 ] ttp://www.ibm.com/developerworks/jp/linux/library/l-qt/ > Ruby/Qt の使い方は、PyQtにかなり似ています。どちらの言語も同じような動的特性 (dynamism) と > 簡潔性を備えていますので、個々の要素に名前の違いはあるにしろ、似た感じのコードになっていても > 不思議はありません。 RubyもPythonも似たようなもんなんじゃね?
279 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:08:42 ] でも俺はある程度Tcl/Tk知ってるからPerlでもRubyでもPythonでもTcl/Tk単体でも 学習コスト最低レベルでウィンドウを扱える まあ要は用途次第だな GUIを提供することだけが最重要で、その裏にあるプログラムの動作はどうでもいいとか
280 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:14:18 ] そもそものあれとしてGUIが必要な人はRubyを使わないし、 Ruby使ってる人はRubyからGUIライブラリを呼ぼうなんて考えない GUIが必要なときは素直に他の言語で書く
281 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:17:23 ] >>280 んなこたーない。 …とは思うものの、自分も Ruby で書かれた GUI アプリは Rabbit くらいしかしらない。
282 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:17:35 ] >>280 で、つまりRuby上のGUIは初心者の領域ではないという話になるわけか 別スレ立ったんだしとりあえずそっちでいいじゃん
283 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:18:38 ] >>280 それはそうだろうけど、その「他の言語」ってところでPythonを勧められることがままあると。 んで、PythonとRubyではそんなに違いないんじゃないの?ってのが>>267 の疑問では。 C#やらJavaやら勧められるんなら、そういう疑問は出てこないと思う。
284 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:20:22 ] >>281 goRua…は終わったか ホントにGUI部分の処理が面倒だなあ ウィンドウ処理と滅茶苦茶高次に融合したRubyとかないの
285 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:25:03 ] いいからこっちでやれ Railsとスレ分けられるんだからGUIとだってスレ分けられるだろ Ruby で GUI するスレ pc12.2ch.net/test/read.cgi/tech/1269609576/
286 名前:デフォルトの名無しさん [2010/03/28(日) 11:39:52 ] ここは初心者スレだからGUIの話もオッケーよ
287 名前:デフォルトの名無しさん [2010/03/28(日) 11:46:26 ] プログラミング初心者には、GUIってのは、すでに出来上がって動いている ものを操作するのは分かりやすいが、それをそう見えるように作るのは面倒 くさいということは知って欲しいなー。 テキストメッセージ1つのウィンドウを出す程度で満足なら別だけど。
288 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:59:32 ] Rubyで使えるGUIライブラリってどんなのがあるの? WndowsFormは使えんよね?
289 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:03:19 ] attr_writer :hogeとdef hoge=(h);@hoge = h; endは 同じ意味だと思いますが、どっちを使うべきなんですか?
290 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:10:29 ] >>289 前者は後者の意味であるということを理解してるならどっちでもいいよ 作ってる最中は attr のことが多いと思う 条件演算子→if式→case式 と移行するのと似たような感じで 結局後者(でメソッド内部で正規化処理つき)になることが少なくない
291 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:17:26 ] >>288 Ruby/Tk VisualuRuby Ruby/Qt4 Ruby/GTK2 WxRuby FxRuby Apollo Ruby/FLTK RubyShoes なんか終わってるのもいくつかあるが気にするな
292 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:22:24 ] >>290 ありがとうございました
293 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:22:57 ] >>291 ありがとうございました
294 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:01:29 ] test do 例外が発生する可能性のある処理 end ---------------------------------------------------------------------------- def test begin 例外が発生する可能性のある処理 yield ensure;end end このようなコードを書いたのですが、test do; endの適切な処理がわかりません 教えてエロ人!!
295 名前:デフォルトの名無しさん [2010/03/28(日) 13:06:36 ] 発生したときどうしたいのさ?
296 名前:294 mailto:sage [2010/03/28(日) 13:18:57 ] >>295 test do endの中で全ての例外を処理し、 例外が発生した時はメソッドをreturnで終了させたい
297 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:24:46 ] > test do endの中で全ての例外を処理 えー そういう場合はメソッドのユーザーが自分の責任で begin で括る begin test do ... end rescue => e error_handling(e) end
298 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:30:30 ] >>297 THX
299 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 15:51:35 ] チルダとダブルクォーテーションの使い分けって何かあったっけ? 何か重要なものがあったような気がするけど思い出せないんだ
300 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 15:55:41 ] 質問が微妙によくわからないけどこれ置いとく doc.okkez.net/187/view/spec/literal ja.wikipedia.org/wiki/%E3%83%81%E3%83%AB%E3%83%80
301 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:01:10 ] チルダ ( ~ ) ? Ruby で ~ を使うのは、マッチング演算子の =~ とその否定の !~ と、 前置の単項演算子で、整数のbitwise-not、正規表現オブジェクトと $_ とのマッチ、 IPAddr オブジェクトのbitwise-not、なので、ダブルクォートとの使い分けをする場面は ないと思うが...
302 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:08:37 ] 間違ったプライムだ 文字やら文字列列をくくる時なんかに使うアレ
303 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:10:41 ] ′や″をRubyで使うことはない
304 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:13:32 ] 「円記号でエスケープ」と聞いて¥を使ってしまうようなピュアな人がここにも…ッ というか文字列括る記号はさっき出てた ttp://doc.okkez.net/187/view/spec/literal#string このへんで用が済みそうだが
305 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:17:51 ] うーn?%記法とやらを使えってか? >>doc.okkez.net/187/view/spec/literal とりあえずこれ読んでくる
306 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:20:10 ] LispやErlangなんかのフォーマット文字列だっけ チルダ使うの
307 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:20:46 ] 親クラスのアトリビュートにアクセスするためには、どうすればいいんですか?
308 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:26:42 ] 記号の区別の知識があることがやっぱ前提だよな "''゛“"”′″`'‘’
309 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:29:56 ] >>307 Rubyにはアトリビュートというものはない 継承されたクラスの a というメソッド内部から継承元の同名のメソッド a にアクセスするには super を使う
310 名前:307 mailto:sage [2010/03/28(日) 16:34:42 ] >>309 そんじゃ、親クラスで定義した@hogeには サブクラスから(メソッドを通さず)アクセスできないってことですか?
311 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:40:09 ] >>310 え、いやふつーにアクセスできると思うんだが irb> class C; def initialize; @hoge="hoge"; end; end irb> class C2 < C; def hoge; @hoge; end; end irb> p C2.new.hoge "hoge"
312 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:59:36 ] 読み方いくつかバリエーションあるんだが " ダブルクォート(ダブルクォーテーション) ' シングルクォート(シングルクォーテーション) ` バッククォート でいいよな 表記の揺れは許容
313 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:05:59 ] ( ) カッコ、パーレン、小カッコ { } ブレース、波カッコ、カーリーブラケット [ ] ブラケット、角カッコ
314 名前:デフォルトの名無しさん [2010/03/28(日) 17:08:01 ] シェルスクリプトやPerlの知識はいくらか前提にしたいなー。
315 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:15:11 ] プライムは 1′23″ とか書くときに使う記号だな
316 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:58:23 ] >>312 「マーク」を付けないところが童貞っぽい。 IPアドレスをIPって略しちゃうのと一緒で。
317 名前:307 mailto:sage [2010/03/28(日) 18:00:19 ] >>311 JRubyでJavaのコードを継承しているんだけど なぜかnilになっちゃう
318 名前:307 mailto:sage [2010/03/28(日) 18:20:48 ] どうやら、JRubyからJavaのフィールドにアクセスするためには 絶対publicじゃないとダメみたい しかもJRubyではローカル変数としてアクセスするみたい class Super{ public String str = "str" } class Sub < Super def initialize p str end
319 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:11:37 ] >>315 わかったからもうやめて 俺のHPは0だ
320 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:20:27 ] >>316 ダブルクオーテーションとダブルクオーテーションマークに何か違いでも
321 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:43:07 ] フルだとどうにも長いからな IPアドレスなんかとは違って紛らわしい候補はないから縮めてもらっても意味はわかるが そもそもがダブルクとかシングルクとかそれくらい短いといいのに
322 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:04:45 ] 一重引用符、二重引用符で各5文字だ。
323 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:19:17 ] >>322 それは、カギカッコと区別がつきづらいので使わないで欲しい。
324 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:21:07 ] 半角単引用符 半角複引用符 6文字でFA
325 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:24:53 ] ほほう«ギュメ»は‹引用符›ではないと申されるかこれは異なことを …いいよもうシングルクオートで
326 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:27:50 ] 次の瑣末粘着者さんどうぞ
327 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:06:44 ] メソッドの名称とかモジュールの名称って 短い方がプログラムの実行速度が速くなるとかありますか?
328 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:12:59 ] …いつのBASICだ 気にする必要はない 変な省略はせずにわかりやすい長めの名称推奨
329 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:38:43 ] 大きなオブジェクトを変数に入れた後は変数に nil を明示的に指定すると メモリ内に巨大なデータがいつまでも残ったままになったりしません とか書いたら信じて実行してくれるだろうか
330 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:49:44 ] irb だとわかるけど、 require するとけっこうメモリ食うよね
331 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 01:56:45 ] win32版Ruby1.87(OSはWindowsXP)9で、漢字を表示するようなスクリプトをUTF-8で保存して スクリプト一行目に#! ruby -Kuと入れて実行したら文字化けした -KsにしてS-JISで保存して実行したら直った ・・・ちゃんとBOM無しとやらにしたのに何でかしら?Ruby本体の設定とかあって、それを間違えてるとかかしら? ちなみに使用したのはサクラエディタ