rubykansaiくんのつぶやき(Stringの%とsuccを使うの巻)

これは、関西に住むRubyistのコミュニティであるRuby関西の愛すべきキャラクター rubykansaiくんの(ちょっと古い)つぶやきを(がんばって)集めたトゥギャッターなのである!
0
RubyKansai @rubykansai

Ruby の String には % って便利な演算子があるんやで。"%x" % 255 # => "ff"

2011-05-25 19:14:00
RubyKansai @rubykansai

ふたつ以上の変数を渡したいときには Array を使うんや。"%dx%d" % [80, 24] # => "80x24"

2011-05-25 19:19:47
RubyKansai @rubykansai

こんなこともできるんやで。"%d" % "0xff" # => "255" どや便利やろ

2011-05-25 19:24:24
RubyKansai @rubykansai

さっきの例は %d に String を渡してるんやで。そしたら勝手に Kernel#Integer 呼んでくれるんや。

2011-05-25 19:28:53
RubyKansai @rubykansai

おっと忘れとったわ。String#to_i と違って Kernel#Integer に変な文字列わたしたら例外出るから気ぃつけや。"%d" % "Ruby" # => ArgumentError: invalid value for Integer(): "Ruby"

2011-05-25 22:06:06
RubyKansai @rubykansai

String#% の話とはちょっとちゃうねんけど、フォーマット文字列の %p て便利やねんで。デバッグする時とかオブジェクトの inspect がそのまま欲しい時とかあるやろ?"%s" % obj.inspect より "%p" % obj の方が短いし正義やで。覚えときや。

2011-05-25 22:13:11
RubyKansai @rubykansai

succ いうメソッド知ってるか? そのオブジェクトが持ってる値の次の値を返してくれるんや。1.succ # => 2 #rubykansai

2011-06-08 18:57:20
RubyKansai @rubykansai

桁上がりもしよるんやで。9.succ # => 10 #rubykansai

2011-06-08 19:01:45
RubyKansai @rubykansai

そんなん +1 したらええと思うやろ? ところが succ は文字列でもできるんや。"a".succ # => "b" #rubykansai

2011-06-08 19:03:27
RubyKansai @rubykansai

ほな "z" の次は何やろ? "z".succ # => "aa" #rubykansai

2011-06-08 19:06:58
Aki  @spring_aki

これはオモシロイ。もいっかいsucc してみると"パンヂ"に。 “@rubykansai: "パンダ".succ # => "パンチ" #rubykansai

2011-06-08 19:38:13
RubyKansai @rubykansai

"凹".succ # => "出" # うわっ 出てきよった! #rubykansai

2011-06-08 19:23:45
Nobuhiro IMAI @no6v

"出".succ # => "击" なんやちょっと変身しよったでw QT @rubykansai: "凹".succ # => "出" # うわっ 出てきよった! #rubykansai (78406855738658817)

2011-06-08 19:25:20
RubyKansai @rubykansai

これ何て読むん? 難しいわ。 RT @no6v: "出".succ # => "击" なんやちょっと変身しよったでw QT @rubykansai: "凹".succ # => "出" # うわっ 出てきよった! #rubykansai (78406855738658817)

2011-06-08 19:27:24
Nobuhiro IMAI @no6v

せめる、うつ。 QT @rubykansai: これ何て読むん? 難しいわ。 RT @no6v: "出".succ # => "击" なんやちょっと変身しよったでw #rubykansai (78407774261874688)

2011-06-08 19:30:28
Aki  @spring_aki

ムズカシイw ためになる。 “@no6v: せめる、うつ。 QT @rubykansai: これ何て読むん? 難しいわ。 RT @no6v: "出".succ # => "击" なんやちょっと変身しよったでw #rubykansai (78407774261874688)”

2011-06-08 19:40:21
RubyKansai @rubykansai

@no6v へぇー。勉強になるわ。ありがとう。

2011-06-08 19:34:04
RubyKansai @rubykansai

みんなもちろん Ruby 1.9 使っとるよね?Symbol#succ もあるんやで。:ZZZ.succ #=> :AAAA (ちなみに今日は World IPv6 Day :) #rubykansai

2011-06-08 19:38:50
しずと (Nagai Ryo) @shizuto_a

そこが変わるのかー "World IPv6 Day :)".succ # => "World IPv6 Daz :)" #rubykansai

2011-06-08 19:41:20
RubyKansai @rubykansai

そやけど Integer でも String でも succ できるって不思議や思わへんか? これが Polymorphism いうてオブジェクト指向の特徴のひとつなんや。 #rubykansai

2011-06-08 19:46:23
RubyKansai @rubykansai

そやけど Float には succ メソッドはないねんで。3.14 の次って何や思う? 3.15 か? 3.141 か? 3.1401 か? そんなん分からへんわ。 #rubykansai

2011-06-08 19:51:49
RubyKansai @rubykansai

require "date" がいるけど Date にもあるで。Date.today.succ.to_s # => "2011-06-09" / Time#succ は警告出るさかい、おとなしゅう +1 しとき。 #rubykansai

2011-06-08 19:58:59
RubyKansai @rubykansai

あとはなー、こんなとこ見とる子らは素数数えんのすっきゃろ?require "prime"; g = Prime::EratosthenesGenerator.new; g.succ で気の済むまで数えたらええわ。 #rubykansai

2011-06-08 20:06:31