Rubyで ”abc” + 3 を ”abc3” にしたい。文字列と数値の連結方法が知りたいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/16 00:22:12
  • 終了:--

回答(3件)

id:at0798 No.1

at0798回答回数4ベストアンサー獲得回数02004/11/16 00:32:54

ポイント50pt

”abc”+3.to_s

じゃだめですか?

id:afternoontea

to_sを勝手に呼んでくれたりしないのでしょうか?

2004/11/16 00:38:36
id:FukayaAruto No.2

FukayaAruto回答回数3ベストアンサー獲得回数02004/11/16 00:35:30

ポイント50pt

Integerクラス(のスーパークラスである、Objectクラス)の、to_sメソッドを使用します。

たとえば、文字列へ変換したい数値が格納されているオブジェクトがfooとすると、foo.to_s と記述します。

id:afternoontea

サイトを見たら文字列への暗黙の変換ができるかと思ったんですけど無理なんですね。

undefined method `to_str’ for 3:Fixnum (NoMethodError)

2004/11/16 00:43:59
id:mojimojikun No.3

limura回答回数9ベストアンサー獲得回数12004/11/16 00:43:28

ポイント50pt

http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Integer#...

Integer - Rubyリファレンスマニュアル

”abc” + 3.to_s

で、いいとおもいます。

to_s メソッドは文字列表現に変換してくれます。

id:afternoontea

ありがとうございました。

2004/11/16 00:56:41
  • id:tsyk
    暗黙の変換

    Numeric クラスに to_str メソッドを定義しておくと、
    文字列への暗黙の変換が必要な時に呼ばれます。

    class Numeric
    def to_str
    self.to_s
    end
    end

    そうしておけば、3.to_s と書く必要がなくなります。

    ”abc” + 3 #=> ”abc3”

    http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Object;em=Object#to_str
  • id:afternoontea
    afternoontea 2004/11/16 22:27:22
    Re:暗黙の変換

    できました。
    なるほど、組み込みクラスを変更するという方法もあるんですね。

    class Numeric
    def to_str
    self.to_s
    end
    end

    result = ”abc” + 3
    print result

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません