Какие типы являются изменяемыми и неизменяемыми в языке Google Go?

В Google Go я читал, что строки неизменяемы, хорошо, но являются целыми? А как насчет других типов? ? Как программист чуть старше меня, я предпочитаю изменчивость, хотя я знаю о преимуществах неизменности, я предпочитаю жить опасно.

Было бы очень полезно знать, какие типы являются изменяемыми или неизменяемыми.


Обновление, меня больше всего беспокоят практические вопросы, связанные с изменяемым или неизменяемым типом. Как и в типичном примере на Java, если вы создаете String в цикле и в цикле 10 000 раз, вы получите 10 000 String, которые затем будут собраны в мусор. На самом деле это было серьезной проблемой в проекте в компании, в которой я работал.

Возникает вопрос, вызывает ли в некоторых случаях неизменяемость Go ту же проблему?

Это влияет на то, как следует обращаться с вар. (или я предполагаю, что это так).


Еще раз обновите, меня беспокоят и другие практические проблемы. Знание того, что что-то является неизменным, означает, что я могу писать код, который является параллельным, и обновления одной ссылки объекта не должны обновлять другие ссылки. Однако иногда я хочу делать опасные вещи, мне нужна изменчивость.

Это последствия изменчивости и неизменяемости, которые влияют на то, как я могу писать код.

31
задан Phil 6 November 2011 в 06:09
поделиться