|
|
|||||
Guest
Сообщений: n/a
|
Проблема с хэш'ем
Стояла простая задача -
имеются зарезервированные слова W1,W2,...,WN; требуется - проверить - принадлежит ли слово WX в потоке слов зарезервированным словам. Что делаем - создаем хэш (массив): H[W1]=H[W2]=...H[WN]=1; и в нужном месте проверяем: if (H[WX]) Action1; else Action2; (*) Всё вроде логично..... Так вот.... если WX="pop" или "push" или названию любого другого метода объекта Array, то инструкция (*) при ЛЮБЫХ (!!) W1,W2,...,WN выдаст Action1, так как H[WX] вернёт ФУНКЦИЮ (метод объекта Array) и IF, соответственно, пойдёт по ветке true; Приходится присваивать значения H["pop"]=H["push"] =....=0 Тогда этот вариант работает. Будте внимательны, не наступите, как я, на эти грабли. |
|
|||||
Guest
Сообщений: n/a
|
Как гласит народная мудрость - умная мысля приходит ... по утрам...
Надо было написать if (H[WX]==1) Action1; else Action2; (*) и всё бы сложилость..... Всем - спасибо за внимание. Топик закрыт. |
Часовой пояс GMT +4, время: 17:53. |
|
« Предыдущая тема | Следующая тема » |
|
|