Является ли «изменяемый» то же самое, что и слово «изменяемый» по отношению к строкам? - PullRequest
2 голосов
/ 17 марта 2009

Когда мы говорим о строках как изменчивых, является ли это синонимом использования слова «изменяемый» или «изменяемый» или есть какой-то дополнительный нюанс, объясняющий, почему этот жаргон используется вместо более простого слова, такого как «изменяемый»?

Ответы [ 7 ]

7 голосов
/ 17 марта 2009

Я думаю, что слово "изменяемый" является хорошим вариантом для этого.

Если бы вы использовали «модифицируемый», это было бы менее понятно. Например, если ваша строка относится к типу, выделенному для кучи, когда вы говорите, что изменяете «строку», неясно, изменяете ли вы данные в куче (содержимое строки) или указатель кучи строки.

Тем не менее, «изменяемый» предполагает, что фактические данные строки меняются. Я думаю, это из-за того, что это тот же корень, что и мутировать. Если что-то мутирует, оно не меняется от взгляда на А к взгляду на Б (то есть: изменяет указатель), а скорее меняет себя или превращается (итеративно) в то, чем оно изначально не было.

2 голосов
/ 17 марта 2009

Изменяемый объект - это объект, который можно изменить после его создания. В некотором смысле, это синоним слова «модифицируемый». Слово «изменчивый» означает «подлежащий изменению или изменению». Я думаю, что это звучит лучше, чем «модифицируемый».

1 голос
/ 17 марта 2009
  • изменяемые
    • «подлежит изменению или изменению».
  • изменяемый
    • "изменить несколько форму или качества; изменить частично;"

наоборот

  • неизменны
    • "не изменяемый; неизменяемый; неизменный"
  • нередактируемые
    • "не может быть изменен по форме, характеру или силе"

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

Но когда в Риме ... так что вы должны использовать изменчивые и неизменные, поскольку они являются наиболее часто используемыми терминами (по крайней мере, по моему опыту).

Откуда такой выбор? Я спросил свою свекровь (она не знает слов :-), и с точки зрения непрограммирования "изменчивый" короче, чем "изменяемый" ... мне кажется, вполне достаточной причиной.

1 голос
/ 17 марта 2009

Да, изменяемый - это термин для объекта, который может быть изменен после его создания, тогда как неизменяемый относится к объекту, который не может измениться. Мутабельный буквально означает «способность мутировать», что, я думаю, идеально соответствует поведению изменяемых объектов.

0 голосов
/ 17 марта 2009

Вот довольно простое объяснение изменчивости / неизменяемости на примере Java:

Mutable

  • может быть изменено без перераспределения памяти
  • a StringBuffer API-документация - это изменяемая версия стандартного класса строк

  • чтобы изменить стандартное значение класса String, вам нужно перераспределить память

Я никогда не слышал об использовании термина «модифицируемый».

0 голосов
/ 17 марта 2009

И так как вы не указали конкретный контекст, о котором говорите (и, пожалуйста, простите меня, если это подлость) ...

Строки в .NET являются неизменяемыми, а не изменяемыми. Как только они созданы, вот и все. Они никогда не меняются. Если предпринимаются попытки изменения, создаются новые строки, а старые освобождаются для сбора мусора.

0 голосов
/ 17 марта 2009

В частности, в отношении строк, в изменяемой строке, если вы измените первый символ с 'A' на 'B', вы все еще имеете дело с теми же байтами в памяти; один из них только что принял другое значение. С неизменяемыми строками, то есть в Java, новый объект будет создан в новом месте в памяти, потому что исходный не может быть изменен.

Mutable - это подходящее слово для описания этого, и оно имеет то преимущество, что не загружается реальными значениями или интерпретациями, которые затрудняют точное использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...