Open asonas opened 11 years ago
文字列連結 helloとworldを連結して hello worldにする
[hirano@f1 ~]$ irb
irb(main):001:0> %!test!
=> "test"
irb(main):002:0> p "hello" "world"
"helloworld"
=> "helloworld"
irb(main):003:0> "hello" "world"
=> "helloworld"
irb(main):004:0> "hello" + "world"
=> "helloworld"
irb(main):005:0> "hello" + " world"
=> "hello world"
正規表現で置き換える writeをwrittenにする
irb(main):006:0> "write".gsub(/te/,"tten")
=> "written"
irb(main):007:0> "write".gsub(/e/,"ten")
=> "written"
puts, printの違いを記述してください
irb(main):020:0> print "test"
test=> nil
irb(main):021:0> puts "test"
test
=> nil
irb(main):022:0>
上記のようにputs
では出力後に改行を行うが、print
では改行を行わない
URI %E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89 を unescapeしてください
irb(main):017:0> require 'uri'
=> true
irb(main):018:0> $decode="%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89"
=> "%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89"
irb(main):019:0> URI.unescape($decode)
=> "リーダブルコード"
irb(main):020:0>
1から10までの配列をつくる
irb(main):023:0> %w(1 2 3 4 5 6 7 8 9 10)
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
配列にひとつ値を追加する
irb(main):025:0> $array = %w(1 2 3 4 5 6 7 8 9 10)
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
irb(main):027:0> $array << 11
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 11]
配列から値を順番に取り出す
irb(main):007:0> $array = %w(1 2 3 4 5 6 7 8 9 10)
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
irb(main):008:0> while $array.size > 0
irb(main):009:1> $popdata = $array.pop
irb(main):010:1> print $popdata
irb(main):011:1> print "\n"
irb(main):012:1> end
10
9
8
7
6
5
4
3
2
1
=> nil
1から10の配列中身を全部足してください
irb(main):097:0> array = []; i = 0; while(i < 10); i += 1;array.push(i); end
=> nil
irb(main):098:0> $total = 0; while (array.size > 0); $tmp = array.pop; $total += $tmp; end
=> nil
irb(main):099:0> $total
=> 55
irb(main):100:0>
Rubyで $
を付けるとグローバル変数になるので注意して下さい。
ローカル変数なら特に $
は不要ですー。
課題1: 以下のPHPの連想配列をRubyのHashで表してください
irb(main):156:0> { :users=>{0=>"aka", 1=>"ao", 2=>'kiiro'} }
=> {:users=>{0=>"aka", 1=>"ao", 2=>"kiiro"}}
irb(main):157:0>
課題2: 以下のphpの連想配列をRubyのHashで表してください
irb(main):180:0> {:aka=>{:real_name=>'akane', :birthday=>'1990/3/28'}, :ao=>{:real_name=>'aoi', :birthday=>'2012/8/1'}, :kiiro=>{:real_name=>'satoshi', :birthday=>'1960/1/2'}}
=> {:aka=>{:real_name=>"akane", :birthday=>"1990/3/28"}, :ao=>{:real_name=>"aoi", :birthday=>"2012/8/1"}, :kiiro=>{:real_name=>"satoshi", :birthday=>"1960/1/2"}}
irb(main):181:0>
@skyriserありがとうございます>< phpの癖が。。
課題3: 課題2で作成したbirthdayをDate(DateTime)クラスを使って表現してみてください
irb(main):037:0> test = {:aka=>{:real_name=>'akane', :birthday=>Date._parse('1990/3/28')}, :ao=>{:real_name=>'aoi', :birthday=>Date._parse('2012/8/1')}, :kiiro=>{:real_name=>'satoshi', :birthday=>Date._parse('1960/1/2')}}
=> {:aka=>{:real_name=>"akane", :birthday=>{:year=>1990, :mon=>3, :mday=>28}}, :ao=>{:real_name=>"aoi", :birthday=>{:year=>2012, :mon=>8, :mday=>1}}, :kiiro=>{:real_name=>"satoshi", :birthday=>{:year=>1960, :mon=>1, :mday=>2}}}
irb(main):038:0>
課題4 課題3で作成したHashからbirthdayを取り出し、それぞれの曜日を求めてください
irb(main):037:0> test = {:aka=>{:real_name=>'akane', :birthday=>Date._parse('1990/3/28')}, :ao=>{:real_name=>'aoi', :birthday=>Date._parse('2012/8/1')}, :kiiro=>{:real_name=>'satoshi', :birthday=>Date._parse('1960/1/2')}}
=> {:aka=>{:real_name=>"akane", :birthday=>{:year=>1990, :mon=>3, :mday=>28}}, :ao=>{:real_name=>"aoi", :birthday=>{:year=>2012, :mon=>8, :mday=>1}}, :kiiro=>{:real_name=>"satoshi", :birthday=>{:year=>1960, :mon=>1, :mday=>2}}}
irb(main):038:0> aka = test[:aka]
=> {:real_name=>"akane", :birthday=>{:year=>1990, :mon=>3, :mday=>28}}
irb(main):039:0> ao = test[:ao]
=> {:real_name=>"aoi", :birthday=>{:year=>2012, :mon=>8, :mday=>1}}
irb(main):040:0> kiiro = test[:kiiro]
=> {:real_name=>"satoshi", :birthday=>{:year=>1960, :mon=>1, :mday=>2}}
irb(main):041:0> Date.new(aka[:birthday][:year], aka[:birthday][:mon], aka[:birthday][:mday]).cwday
=> 3
irb(main):042:0> Date.new(ao[:birthday][:year], ao[:birthday][:mon], ao[:birthday][:mday]).cwday
=> 3
irb(main):043:0> Date.new(kiiro[:birthday][:year], kiiro[:birthday][:mon], kiiro[:birthday][:mday]).cwday
=> 6
Date._parse
::_parse
は戻り値がHashになってます。違うもの使ってみてくださいー
Date._parse("2012-3-3").class
=> Hash
Hashの中だからとりあえず、_付きの方でやってみました。
違うのもやってみます
Date(DateTime)クラスを使って表現
とあるので一応ね。w
:thumbsup:
{:aka=>{:real_name=>'akane', :birthday=>Date.new(1990, 3, 28)}, :ao=>{:real_name=>'aoi', :birthday=>Date.new(2012, 8, 1)}, :kiiro=>{:real_name=>'satoshi', :birthday=>Date.new(1960, 1, 2)}}
こういうことだろうか・・・
こういうことだろうか・・・
:+1:
ハッシュの課題は1行だと見づらいので hash.rb
みたいなファイルをつくっても大丈夫ですよ。
ハッシュの課題は1行だと見づらいので hash.rb みたいなファイルをつくっても大丈夫ですよ。
@asonas もう少し時間があるので、それに試みているとこでした。 苦戦中。
諸注意
事前知識
文字列操作
hello world
にするwrite
をwritten
にするputs
,print
の違いを記述してください配列, 繰り返し
自習
Enumelableはよく使うので覚えておくといいでしょう http://doc.ruby-lang.org/ja/1.9.3/class/Enumerable.html
ハッシュ
hash.rb
ファイルなどを生成しても大丈夫です。課題1: 以下のPHPの連想配列をRubyのHashで表してください
課題2: 以下のphpの連想配列をRubyのHashで表してください
PHPではキャメルケースですが、Rubyではスネークケースなことに注意してください
課題3: 課題2で作成した
birthday
をDate(DateTime)
クラスを使って表現してみてください課題4 課題3で作成したHashから
birthday
を取り出し、それぞれの曜日を求めてくださいruby + gem を使ってやること
水曜日あたりで少しヒアリングします。
おまけ
ペアプロします