購読を始めるとコンテンツの最初のページから毎日1ページずつお届け。
のんびりペースで読むフィード。

rubyco(るびこ)の日記 2006年2月

スポンサードリンク

 タグ Ruby プログラミング 勉強日記 rubyco

 28ページ (28日間購読)

 3人購読中

  http://d.hatena.ne.jp/rubyco/

rubycoと同じペースでほほえみつつRuby。二ヶ月目です。

このフィードは部分配信フィードです。

このコンテンツに含まれるページ一覧

Module#module_function Module#module_functionを使うと、メソッドをモジュール関数としてコピーします。プログラミングRubyでは「モジュールメソッド」と呼んでいますが、module_functionとい...
eachとfor eachで配列の要素の和を取る例です。違う書き方を試そうと、productの方ではforを使いました。 class Array def sum value = 0 each { |e| value += e } value end def product value = 1 for e in self val...
クラスというオブジェクト Javaではリフレクションを扱い始めて「そういえば、クラスもオブジェクトなんですね」と気が付くのですが、Rubyでは最初からクラスもオブジェクトで...
二分探索木 Rubyで二分探索木を作ってみました。 class Node attr_accessor :left, :right, :key, :value def initialize(key, value) @up = @left = @right = nil @key = key @value = value end end class Tree def initialize @root =...
BEGINとEND RubyのBEGINとENDはPerlのものと同じですね。 BEGIN { puts "BEGIN" } END { puts "END" } begin puts "begin" exit rescue SystemExit puts "rescue" ensure puts "ensure" end 実行結果です。 BEGIN begin rescue ensure E...
RubyでSQLite3の練習 SQLite downloadからPrecompiled Binaries For Windowsをダウンロードして展開 sqlite-3_3_3.zip (sqlite3.exe) sqlitedll-3_3_3.zip (sqlite3.dll, sqlite3.def) SQLite documentationのGetting Startedを読んで...
open, binmode, seek, getc, putc RubyのFileを使って配列もどきを作りました。あ、でもcloseしていませんね。 書き込むときは自動的に一文字目がかかれるのに、読み出すときは明示的にchr...
CGIを作る 以前Perlで書いた簡単なメモ書きCGIをRubyに移植して動かしました。 まだ関数ベースで(大きなクラスに全メソッドを入れて)書いているので、OOっぽくありません。それは...
特異メソッド Rubyでは、オブジェクト固有のメソッドを定義できます。特異メソッドです。 s = "Rubyco" def s.hello puts "Hello" end s.hello #=> Hello t = s t.hello #=> Hello "Rubyco".hello #...
Module#ancestors ancestorsは、スーパークラスたちを得ます。 p 0 #=> 0 p 0.class #=> Fixnum p 0.class.ancestors #=> [Fixnum, Integer, Precision, Numeric, Comparable, Object, Kernel] p 0.cl...
CGI.escapeHTML 既存のクラスにさくっとメソッド追加できるのは、Rubyの非常によい点だと思います。 require "cgi" class String def escapeHTML CGI.escapeHTML(self) end end puts "<Hello & Goodbye>".escapeHTML ...
each_key Rubyのハッシュでキーに関してイテレートするときには、keys.eachまたはeach_keyを使います。 h = { "Alice" => 31, "Bobby" => 41, "Chris" => 59, } h.keys.each {|k| puts "#{k} => #{h[k]}" } h.each_key {|k|...
クラス定義をHTMLで RubyのModuleクラスのインスタンス変数を使うと、クラス定義をリフレクトして出力できますね。 疑問: どうしてModule#public_class_methodsやModule#class_methodsがないので...
NKF? 文字コードの変換をしようと思ったのですが、ri NKFでも、ri converterでも、ri Kconvでも、ri convertでも見つかりません。 疑問: riで探すのはまちがっているのでしょうか?id:nurseさ...
trap trap("INT")を使うと、CTRL+Cでも終了しなくなります。 # trap("INT") { puts "INT" } trap("EXIT") { puts "EXIT" } while true print "." sleep 1 end Permalink | コメント(0) ...
` ... `CommentsAdd Star Rubyの` ... ` の扱いは、Perlのものと似ています。 `perl -v`.each do |line| print "> #{line}" end
IO#each_byte IO#each_byteで1バイトずつファイルを読むことができます。 FILENAME = "file" open(FILENAME, "w") do |f| f.puts "Hello!" f.puts "This is Rubyco." end File.open(FILENAME, "r") do |f| f.each_byte do |c| printf("%...
4週間が過ぎました 「ほほえみつつ、Ruby。」をキャッチフレーズにしてRubyの勉強を続けています。早いもので、昨日が28日目、4週間が過ぎました。 エディタも2タブにしてみまし...
FileUtilsとtexpdf.rb pLaTeXPDF変換をするバッチファイル的なスクリプトをRubyで書いてみました(texpdf.rb)。 require "fileutils" if ARGV.length == 0 puts "Usage: texpdf.rb filename[.tex]" exit end from = ARGV[0].gsu...
Array#each_with_index Rubyの練習。要素だけではなくインデクス付きのイテレーション。 ary = [ "Alice", "Bobby", "Chris" ] ary.each_with_index do |e, i| puts "#{i}: #{e}" end 実行結果はこうなります。 0: A...
Array#flatten RubyのArray#flattenは配列を「平ら」にします。再帰的構造はどうなるか気になるところですが、エラーになるようです。 a = [ 1, 2, 3, [ 4, 5, 6 ] ] b = [ 0, 0, 0 ] b << b puts a.flatten ...
String#succ Rubyにも、Perl同様にマジカルインクリメントがありました。 puts "123456789".succ #=> 123456790 puts "XYZ".succ #=> XZA puts "<789>".succ #=> <790> Permalink | コメント(0) ...
ReFe 「ReFeなら表示されますよ」というアドバイスを以前いただいたので、ReFe(りふぇ)なるものをインストールしました。 ReFeからダウンロードして展開。 README.jaを読む。 ruby setup....
Test::Unit::TestCase(2) 修正後。 require "test/unit" class RubycoTest < Test::Unit::TestCase def test_rubyco testval = "Expected" assert_equal "Expected", testval, "Simple string test." end def test_rubycoadd z = 3 + 4 assert_equal 7, z...
String#scan scanはイテレータをとることができます。 s = "12,345?67-890" s.scan(/(\d+)/) do |n| puts n end __END__ 12 345 67 890 Permalink | コメント(0) One-Click Installer 今日は、One-Click InstallerでRubyを入...
1/0と1/0.0 Rubyで1/0はZeroDivisionErrorになるけれど、1/0.0はInfinityになります。 begin p 1/0 rescue => e p e #=> #<ZeroDivisionError: divided by 0> end begin p 1/0.0 #=> Infinity rescue => e p e end Permalink | ...
kind_of? Rubyのkind_of?またはis_a?を使うと、オブジェクトの種類を弁別できます。オーバーロード代わり(言い過ぎ)。 def exclam(o) if o.kind_of?(String) o << "!" else o.kind_of?(Integer) v = 1 o.downto(1) ...
FAQ  利用規約  お問い合わせ  管理人ブログ  Copyright (c) 2006-2010 brass.to