0

例えば:

ruby-1.9.2-p0 > a = ['hello', 'world']
 => ["hello", "world"] 

ruby-1.9.2-p0 > "foo" + a
TypeError: can't convert Array into String
    from (irb):3:in `+'
    from (irb):3
    from /Users/peter/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'

ruby-1.9.2-p0 > "foo" + a.to_s
 => "foo[\"hello\", \"world\"]" 

ruby-1.9.2-p0 > puts "foo" + a.to_s
foo["hello", "world"]

なぜRubyは配列を文字列に自動的に変換できないのですか?

4

3 に答える 3

8

Rubyができないということでなく、そうでないということです。これは強く型付けされた言語です。つまり、型変換は自分で行う必要があります。これは、互換性のない型の混合に起因するエラーを早期に発見するのに役立ちますが、プログラマーによるもう少し注意と入力が必要です。

于 2010-09-22T04:12:18.003 に答える
-3

Ruby を自動的に String に変換することができます。

class Array
  def to_string
    self.unshift("").join(" ")
  end
end

a = ["Hello", "World"]

"foo" + a.to_string

Railsが出る前はRubyを少し使っていました。もう一度ダウンロードして遊んでいたところ、あなたの質問を見ました。私は無知か気違いかもしれませんが、ちょっと... それは私の刺し傷です。

于 2010-09-22T07:11:03.317 に答える