Hatena::Grouprubyist

Rubyを勉強しようと思ってはじめた日記

2007-12-31はじめてのRuby(4)

課題

| 00:54 |  課題 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  課題 - Rubyを勉強しようと思ってはじめた日記  課題 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

  • 条件判断
    • if、case、修飾子 第五章
  • 繰り返し 第六章
  • メソッド 第七章

で、どうしていこうか

上記は少し飛ばそうかなあ。ちょっと他を読んでいていて

  • エラー処理
  • クラス
  • オブジェクト
  • イテレーター
  • mixi-in

とか、今まで無かった点が面白そうだし、興味がわくよね。

問題は、そのあとどうしようかな。やっぱり、これか!


全体的な話-たのしいRuby(2002)第四章

| 00:39 |  全体的な話-たのしいRuby(2002)第四章 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  全体的な話-たのしいRuby(2002)第四章 - Rubyを勉強しようと思ってはじめた日記  全体的な話-たのしいRuby(2002)第四章 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

全体的な話

  • オブジェクト
  • クラス
  • 変数

変数

これは、間違いやすそう。Perlと近いような。そしてPHPとも近いような

混乱しそうだなあ

  • ローカル変数
    • アルファベットの小文字か、_で始まる
  • グローバル変数
    • $で始まる
  • インスタンス変数
    • @で始まる
  • クラス変数
    • @@で始まる
  • 擬似変数

インデント

半角スペース2つが標準なのかな?

vimの設定を変更しないと...。

たのしいRuby(2002)第三章までは終了

| 00:29 |  たのしいRuby(2002)第三章までは終了 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  たのしいRuby(2002)第三章までは終了 - Rubyを勉強しようと思ってはじめた日記  たのしいRuby(2002)第三章までは終了 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

ということで、区切りよく?第三章まで読んで書いてしてみました。

これで勉強してみようと思います。


ファイルを読み込む(2)

| 00:22 |  ファイルを読み込む(2) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  ファイルを読み込む(2) - Rubyを勉強しようと思ってはじめた日記  ファイルを読み込む(2) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

while怖い...けれど、これだと1行づつ読み込み可能

getsメソッドというのがあるのね

filename = ARGV[0]
file     = open(filename)
while text = file.gets do
    print text
end
file.close    # ファイルをクローズ

ファイルを読み込む(1)

| 00:09 |  ファイルを読み込む(1) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  ファイルを読み込む(1) - Rubyを勉強しようと思ってはじめた日記  ファイルを読み込む(1) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

あ、プログラムらしい

filename = ARGV[0]    # ファイル名指定
file     = open(filename)    #ファイルを開く
text     = file.read    #ファイルを読み込む
print text    # ファイル内容を表示
file.close    # ファイルをクローズ

ARGV

| 23:51 |  ARGV - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  ARGV - Rubyを勉強しようと思ってはじめた日記  ARGV - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

コマンドラインのときに引数を受け取る配列。

Perlのときにもあった。

正規表現 - nilってなんだ?

| 19:44 |  正規表現 - nilってなんだ? - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  正規表現 - nilってなんだ? - Rubyを勉強しようと思ってはじめた日記  正規表現 - nilってなんだ? - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

絶対にお世話になること間違いなしの正規表現。ここらへんは、Perlに似ている

p /Ruby/ =~ 'Ruby'    #0
p /Ruby/ =~ 'Geek Love Ruby'    #10
p /Ruby/ =~ 'hatena'    #nil

/正規表現/ =~ '文字列'

で、マッチする箇所が無いときは、nil(ニル)が返ってくる。nilってなんだ?

2007-12-29はじめてのRuby(3)

配列(3)Hash - 連想配列

| 01:54 |  配列(3)Hash - 連想配列 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  配列(3)Hash - 連想配列 - Rubyを勉強しようと思ってはじめた日記  配列(3)Hash - 連想配列 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

本を読んでいたら、「昔は連想配列...」なんて書かれていました。ワタシ、昔の人なんだろうか。

railway = {
    '山手線' => ['東京','神田','有楽町'],
    '埼京線' => ['赤羽','池袋','渋谷']
}

railway.each{|key,value|
    print key + "\n"
    value.each{|station|
        print station + "\n"
    }
}

なんだか、JSONとか思い出してきた...。ここらへんは、PHPとかに近いかもね。


配列(2)

| 01:44 |  配列(2) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  配列(2) - Rubyを勉強しようと思ってはじめた日記  配列(2) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

eachについて。配列をまわして処理する

Perlでいうところのforeach

name.each {|n|
    print n,"\n"
}

eachは、「イテレーター」というメソッドらしい。これって、デザインパターンで出てくるのとは違うの?

久々に、{}というブロックが出てきた。Rubyではあまり見ないね(これから出てくるのかな?)



配列(1)

| 01:30 |  配列(1) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  配列(1) - Rubyを勉強しようと思ってはじめた日記  配列(1) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

配列の話。Perlに似ているね。でも、配列の要素数を出力するsizeというメソッドは初めて。

lengthではないんだね

name = ['山田','佐藤','高橋','大泉','加藤']
print name[3] + "\n"    # 大泉

name[3] = '藤村'
print name[3] + "\n"    # 藤村

p name             # '山田','佐藤','高橋','大泉','加藤'
print name.size    # 5

ファイルを読み込む

| 01:15 |  ファイルを読み込む - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  ファイルを読み込む - Rubyを勉強しようと思ってはじめた日記  ファイルを読み込む - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

helloメソッドを一つのファイルにする

hello_def.rb

def hello
    print "Hello World"
end

作ったファイルを、読み込む。

ファイルを読み込むときに、.rbという拡張子は必要ない

require "hello_def"
hello()

requireというメソッドを使う。

メソッドを作る

| 01:15 |  メソッドを作る - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  メソッドを作る - Rubyを勉強しようと思ってはじめた日記  メソッドを作る - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

functionとか、subとかだね

def hello
    print "Hello World"
end
hello();

とやると、helloというメソッドが実行される

hiro-uedahiro-ueda2007/12/31 13:58length も使えますよ。

c:\work>ruby -e 'puts %w(山田 佐藤 高橋 大泉 加藤).size'
5
c:\work>ruby -e 'puts %w(山田 佐藤 高橋 大泉 加藤).length'
5

どっちも同じ結果が得られるはずです。

d4-1977d4-19772008/01/01 17:30ありがとうございます。試してみたら、lengthでも同じ結果を得ることが出来ました。これで間違えても大丈夫

2007-12-28はじめてのRuby(2)

timesメソッド

| 23:48 |  timesメソッド - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  timesメソッド - Rubyを勉強しようと思ってはじめた日記  timesメソッド - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

これは初めて。実行する回数を指定して繰り返してくれる

100.times{
    print "こんにちは" 
}

これだと100回「こんにちは」が表示されます。

Perlとか、JavaScriptとか、PHPにはなかったかも。

while文

| 23:39 |  while文 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  while文 - Rubyを勉強しようと思ってはじめた日記  while文 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

i = 10
while i <= 10
    print (i, "\n")
    i = i + 1 
end

一応動くんだけれど、

while.rb:3: warning: don't put space before argument parentheses

って出る。なんだろう?

条件分岐(1)

| 23:39 |  条件分岐(1) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  条件分岐(1) - Rubyを勉強しようと思ってはじめた日記  条件分岐(1) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

お。ついにウワサのendが出た

if a > 10
    print 'big'
else
    print 'small'
end
#big

条件分岐(0)

| 23:39 |  条件分岐(0) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  条件分岐(0) - Rubyを勉強しようと思ってはじめた日記  条件分岐(0) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

pメソッドを使うとこんな感じになる。

p 2 == 3 # false
p 2 == 2 # true
p 2 != 3 # true

これは便利。


コメント

| 22:33 |  コメント - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  コメント - Rubyを勉強しようと思ってはじめた日記  コメント - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

複数行のコメントが書きやすいのいい感じ。

コメントの場所もわかりやすいかも。

=begin
コメント欄です
いいねこれ。
=end

name    = '山田 太郎';
address = '東京都';  #コメント
print name + address

変数

| 22:33 |  変数 - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  変数 - Rubyを勉強しようと思ってはじめた日記  変数 - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

$とかつけなくてもいいみたい。

name    = '山田 太郎';
address = '東京都';
print name + address

くっ付けて表示するときは、+記号でいいみたい

pメソッド

| 22:17 |  pメソッド - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  pメソッド - Rubyを勉強しようと思ってはじめた日記  pメソッド - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

printメソッドと違い、pメソッドはオブジェクトの内容を出力してくれる

p "100"
p 100

これだけだとわかりにくいなあ...。

hiro-uedahiro-ueda2007/12/31 13:54> while.rb:3: warning: don't put space before argument parentheses

多分、『print (i』を『print(i』にすると警告が消えるんじゃないかと。

d4-1977d4-19772008/01/01 17:41ありがとうございます。警告消えました。
i = 10
while i <= 10
print(i, "\n")
i = i + 1
end

2007-12-27はじめてのRuby(1)

Hello Worldを書いてみる

| 01:19 |  Hello Worldを書いてみる - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  Hello Worldを書いてみる - Rubyを勉強しようと思ってはじめた日記  Hello Worldを書いてみる - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

print ("Hello Ruby\n")

でも

print "Hello Ruby\n"

でもよい。へぇ。

2007-12-26Rubyを勉強してみようと思って

Rubyを勉強してみようと思って

| 22:19 |  Rubyを勉強してみようと思って - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  Rubyを勉強してみようと思って - Rubyを勉強しようと思ってはじめた日記  Rubyを勉強してみようと思って - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

Rubyを勉強してみようと思って、まずは日記を用意してみました。

少しづつでも書くようにしてみようと思います。

たのしいRuby

| 22:19 |  たのしいRuby - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  たのしいRuby - Rubyを勉強しようと思ってはじめた日記  たのしいRuby - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

これで勉強してみようと思います。

カレンダー
2007 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2009 | 06 | 08 |