* たのしいRuby 第5章 条件判断
nilとfalseの違いについて。
イマイチ違いがわからなかったので、調べた
持っているメソッドの違いは,nil.methods - false.methodsと false.methods - nil.methodsを表示してください.
ハッシュでは,nilを値として持つことができませんが, falseを持つことはできます.
!!
驚いた。nilもfalseもオブジェクトかよ!!
nilはJavaScriptで言うところのundefined(未定義値)みたいなものだと思う。
case
サンプルはメールヘッダ解析だったけど、メールヘッダを用意するのが面倒だったので、HTTPヘッダ解析にしてみた。
自宅サーバーに繋ぎます。
header.rb
#!/usr/bin/ruby require 'net/http' response = Net::HTTP.get_response('localhost', '/') response.each { |key, value| case key when "last-modified" puts "最終更新日時 : " + value when "date" puts "生成日時 : " + value when "server" puts "サーバー : " + value when "content-length" puts "長さ : " + value when "connection" puts "コネクション : " + value when "content-type" puts "種類 : " + value when "etag" puts "よくわからん : " + value when "accept-ranges" puts "なんだコレ : " + value else printf "その他 : %s : %s\n", key, value end } print response.body
RFCは後で調べるとして・・・。実行〜
% ./header.rb コネクション : close 種類 : text/html; charset=UTF-8 生成日時 : Sat, 28 Apr 2007 04:19:35 GMT サーバー : Apache/2.2.3 (Fedora) 長さ : 3956 なんだコレ : bytes <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Test Page for the Apache HTTP Server on Fedora Core</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ...(略
今回はcase文がメインなので、他は適当っす。case文はcase~when~else~endと書く。自宅サーバーも作らないとなぁ・・・。
連続で書きたいときはwhen "foo" "bar"と書くっと。
- 参考
- プログラミングRuby第2版 ライブラリ蝙
おし!5章終了〜。