Rails использует Symbol vs String в качестве ключа в хэше params

Если мы используем строку в качестве ключа хеширования, Ruby необходимо оценить строку и посмотреть на ее содержимое (и вычислить для этого хеш-функцию) и сравнить результат с (хешированными) значениями ключей, которые уже хранятся в хеш-коде..Если мы используем символ в качестве хеш-ключа, подразумевается, что он неизменяемый, поэтому Ruby может просто сравнить (хеш-функцию) идентификатора объекта с (хешированными) идентификаторами объектов ключей, которые уже хранятся вХеш.(намного быстрее).Но дело в Rails ---- +: = 0 =: + ----, который является экземпляром ---- +: = 1 =: + ---- , если мы напишем ---- +:= 2 =: + ---- он преобразует ---- +: = 3 =: + ---- в ---- +: = 4 =: + ----, а затем пытается найтиключ в хэше params.строка 159поэтому, если поиск выполняется медленно со String в качестве ключа в Hash, почему ---- +: = 6 =: + ---- преобразует символьный ключ в строку.
7 голосов | спросил Subhash Chandra 17 Maypm16 2016, 20:37:01

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132