lispとrubyとpythonと その2(ruby)
次はruby。
lispをやったあとだと、全てがクラスラライブラリに入っているrubyが書いたり調べたりするのが楽。
#! /usr/bin/ruby -Ku #参考 #http://www.namaraii.com/rubytips/ #文字列連結 puts s = "abc" + "あいうえお" #文字列の分解 "あaあ,いiい,うuう,えeえ".split(",").each{|e| puts e.upcase} #文字列のフォーマット #rubyにもあった。 puts "aaa %s bbb %s" % ["あ","い"] #文字列検索 puts "あいうえおかきくけこさしすせそ".index "かきくけこ" #部分文字列の取得 s = "あいうえおabcde" puts s[5..10] #特定の文字の場所を探して部分文字列取得とかありがちじゃない? target = "あいうえお-かきくけこ" puts target[target.index("-") + 1..target.length] #文字列比較 #普通の文字列比較 puts "true" if "aaa" == "aaa" #case-insensitiveな比較 #upperしてから比較 puts "true" if "aaa".upcase == "Aaa".upcase #rubyでは==とeql?が同値性比較でequal?が同一性比較 puts "a" if [1,2] == [1,2] puts "b" if [1,2].eql?([1,2]) puts "c" if [1,2].equal?([1,2]) arr = [1,2] puts "d" if arr.equal?(arr) #数字→文字列 puts 123.000.to_s #文字列→数値 puts "123".to_i + 1 puts "123.000".to_f + 1 #日付→文字列 #現在日付 dt = Time.now puts dt.strftime "%Y/%m/%d %H:%M:%S" #文字列→日付 require "time" puts Time.parse("2008/07/10 12:13:14").strftime "%Y-%m-%d %H-%M-%S" #標準出力に出力 puts "こんにちは" #フォーマットするならprintf printf "%s-%s-%s", 1, 2,3 #標準入力から読み込み printf (s = readline) until s == "exit\n" #コマンドライン引数の取得 ARGV.each{|arg| puts arg} #こっちでもいい $*.each{|arg| puts arg} #コマンド名をとるときは$0fで puts $0