2015-07-19 3 views
1

Я читал о значениях и ссылочных типах, и вопрос, на который я не мог найти четкого ответа, состоял в том, почему примитивы типа int/double и т. Д. Не являются ссылочными типами, например, строками. Я знаю, что строки/массивы/другие объекты могут быть довольно большими по сравнению с ints (который я видел, был основным pro of reference), поэтому единственная причина не делать ссылочный тип этих примитивов - это потому, что это было бы чрезмерно убито?Почему примитивы не являются ссылочным типом?

+1

Какой язык программирования вы говорите? –

+0

C# и java в основном – relysis

ответ

1

Это относится только к некоторым языкам программирования, и это обычно делается как оптимизация (во избежание необходимости выполнять разметки или распределения памяти для таких простых типов). Тем не менее, существуют языки, которые делают базовые числовые типы, а объекты, определенные программистом, выглядят и ведут себя одинаково, иногда выбирая между истинным объектом и простым объектом автоматически в компиляторе или интерпретаторе, чтобы поддерживать эффективность, когда объектные возможности не используются.

Python и Scala - примеры, где основные целые и обычные объекты неразличимы; Java, C++ и C - примеры, в которых встроенные типы отличаются от типов, определенных программистом.

Смежные вопросы