Указывают ли разные ключи на одно и то же значение, если оно одинаковое?

Мне было интересно, будут ли несколько ключей разные указывать на одно и то же значение, если значения для каждого из этих ключей одинаковы?

Например:

Ключ: "привет"

Ключ: «пока»

ключ: "доброе утро"

Значение: «Приветствую»

Теперь, все ли 3 клавиши указывают на один экземпляр «Приветствия», или каждая из них указывает на отдельные экземпляры «Приветствия»?

Это будет зависеть от языка программирования, о котором вы говорите. Разве в языке нет возможности сравнивать ссылки?

JJJ 11.04.2018 13:50

Я начинаю думать, есть ли люди, которые голосуют против вопросов только ради этого ...? Хороший вопрос, который я тоже хотел бы знать.

xoxel 11.04.2018 13:51

@JJJ Я узнал об этом на Java, и я знаю, что ключи указывают на один и тот же экземпляр, поэтому он не тратит память, но мне было интересно, является ли это общим правилом

ImperfectLion 11.04.2018 13:52

Да, общее правило - не тратить зря память.

JJJ 11.04.2018 14:09

Нет общего межъязыкового консенсуса по поводу одной и отдельной копии значения. Некоторые языки, такие как Java, имеют встроенные механизмы для обмена строковыми значениями, в то время как с другими языками, например C++ - это намного сложнее: компилятор имеет тенденцию использовать одну и ту же память для всех экземпляров одного и того же строкового литерала константы времени компиляции (т.е. там, где вы говорите «Приветствие» прямо в исходном коде); для текста, неизвестного до времени выполнения (или сохраненного в std::string), хеш-таблица может хранить указатели на те же объекты; вы также можете найти или создать библиотеку пула строк, которая больше похожа на Java.

Tony Delroy 15.04.2018 04:52
0
5
24
0

Другие вопросы по теме