我不知道為什么我的紅寶石會發生這種情況,但你看到同樣的行為嗎?
3.1.2 :001 > ["url", "label:from", "label:type", "label:batch", "note"].index('url')
=> nil
3.1.2 :002 > ["url", "label:from", "label:type", "label:batch", "note"].index('note')
=> 4
3.1.2 :003 > ["Url", "label:from", "label:type", "label:batch", "note"].index('Url')
=> 0
小寫時找不到“url”。這是保留字嗎?
編輯:似乎無法找到“url”字串的第一次出現:
["note", "url", "label:from", "label:type", "label:batch", "note", "url"].index 'url'
=> 6
uj5u.com熱心網友回復:
陣列中的第一個條目不是您認為的那樣。查看原始位元組,您將看到:
["url", "label:from", "label:type", "label:batch", "note"].first.bytes.map { |x| x.to_s(16) }
# ["ef", "bb", "bf", "75", "72", "6c"]
這0x75 0x72 0x6c是"url"你看到的,0xef 0xbb 0xbf是位元組順序標記(BOM)。位元組順序在 UTF-8 中沒有意義,因此不應使用 BOM,它們有效但不常見,不推薦使用。如果這是字串的來源,您可以讓 Ruby在讀取檔案時剝離 BOM 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/460563.html
上一篇:在Rails遷移中更新電子郵件域
