我在使用Twitter gem和傳入數組時遇到了此錯誤。「TypeError:不能修改凍結字符串」是什麼意思?
我的代碼看起來很無辜 - 想知道是什麼導致了這個?
def twitter_get_users(client, user_names=[])
copy=Array.new(user_names)
users = client.users(user_names)
end
TypeError: can't modify frozen string
from gems/twitter-1.0.0/lib/twitter/client/utils.rb:10:in `gsub!'
from /gems/twitter-1.0.0/lib/twitter/client/utils.rb:10:in `clean_screen_name!'
from /gems/twitter-1.0.0/lib/twitter/client/utils.rb:33:in `merge_users_into_options!'
我以前嘗試這樣做,並沒有工作,但相當於這工作=> user_names.map {| u | u.dup} =>因爲它們中的字符串被凍結了! =) – 2010-12-09 04:16:21
這很有趣。我根據你的評論更新了我的答案。我認爲,雖然你正在傳遞的'user_names`數組有趣的事情發生。也許你應該在第一次將字符串添加到數組時使用`dup`(除非有理由需要凍結它們)。 – bowsersenior 2010-12-09 06:54:30