-1

次のコードはエラーを生成していて、問題を確認できません。誰か助けてもらえますか?

customer_array = [‘Ken’,’William’,’Catherine’,’Mark’,’Steve’,’Sam’]
customer_hash = {
‘Ken’ => ‘Fiction’,
‘William’ => ‘Mystery’,
‘Catherine’ => ‘Computer’,
‘Mark’ => ‘Fiction’,
‘Steve’ => ‘Sports’,
‘Sam’ => ‘Fiction’
}
# => customer_array.rb:6: syntax error, unexpected tSTRING_BEG , expecting '}'
# 'William' => 'Mystery'
#      ^
4

3 に答える 3

6

問題は、これらの奇妙な逆引用符にあるようです。代わりにこれを試してください:

customer_array = ["Ken","William","Catherine","Mark","Steve","Sam"]
customer_hash = {
    "Ken" => "Fiction",
    "William" => "Mystery",
    "Catherine" => "Computer",
    "Mark" => "Fiction",
    "Steve" => "Sports",
    "Sam" => "Fiction"
}
于 2012-11-16T08:04:28.247 に答える
1

あなたの引用符は非ASCII文字です。

'それらを ASCIIまたはに置き換えます"

または、ファイルの先頭に追加# encoding: UTF-8して、次のように ASCII 引用符で囲みます。

# encoding: UTF-8

customer_hash = {
  "‘Ken’" => "‘Fiction’",
}
于 2012-11-16T08:36:46.820 に答える
-1

たくさんのキーがあります => 値 ハッシュには 1 つのキー (矢印の前) と 1 つの値 (矢印の後) が含まれます。

ハッシュの配列を作成できます。Ruby on rails はこれを使用します。

引用符を修正する必要があります

customer_hash = {
    "Ken" => "Fiction",
    "William" => "Mystery",
    "Catherine" => "Computer",
    "Mark" => "Fiction",
    "Steve" => "Sports",
    "Sam" => "Fiction"
}

しかし、なぜこのようにしないのですか

customer_array_of_hashes =  [
{'Ken' => 'Fiction'},
{'William' => 'Mystery'},
{'Catherine' => 'Computer'},
{'Mark' => 'Fiction'},
{'Steve'=> 'Sports'},
{'Sam' => 'Fiction'}
]

次に、このようにループできます

customer_array_of_hashes.each do|hash|
 hash.each do |key, value|
  puts "lastname: " + value + ", firstname: " + key
 end
end

すべてのルビークラスのすべてのメソッドをここで見つけることができます

Ruby API

ここに追加のメソッドを追加します

Ruby on レール API

最後にひとつのヒント

これを試して

irb(main):039:0> customer_array_of_hashes.class
=> Array

Ruby でどのクラスを持っているかを知っている場合は、クラス メソッドが答えを提供します。

はい、customer_array_of_hashes は配列です。配列で使用できるメソッドの 1 つは .first です。

これを試して

irb(main):040:0> customer_array_of_hashes.first.class
=> Hash

これはハッシュの配列です。

よく見て!

于 2012-11-16T08:21:56.327 に答える