编程语言中值和对象不同的一种语言

8

我正在尝试开始学习Alex Stepanov和Paul McJones的'Elements of Programming'。在第5页的最后一段,他们说:

"这本书使用的编程语言没有办法将值和值类型与对象和对象类型分开描述。"

我的意思是,有没有人可以举一个编程语言的例子,在该语言中,可以将值描述为与对象不同的实体。


第一个例子在标签中... 在C或C++中有值和对象。在C中,对象的术语是lvalue,而值的术语是rvalue... - David Rodríguez - dribeas
1
我猜是Java,但我不能确定。 - Pubby
1
@DavidRodríguez-dribeas:我认为一个对象也可以是右值(例如,在临时对象的情况下)。 - A. K.
1个回答

3
听起来他们在谈论值类型和引用类型。类似于维基百科条目中的文本(http://en.wikipedia.org/wiki/Object_type_(object-oriented_programming))
一些面向对象编程语言区分引用类型和值类型,通常在复杂值类型不存在的平台上称为对象和非对象,原因是运行时效率、语法或语义问题等。例如,Java有原始包装器类对应于每个原始类型:Integer 和 int,Character 和 char,Float 和 float 等。像C++这样的语言几乎没有引用类型的概念;因此,对象类型的使用不太重要。
C#具有引用类型和值类型:http://msdn.microsoft.com/en-us/library/4d43ts61(v=vs.90).aspx

1
这本书说:“对象类型是一种用于存储和修改内存中的值的模式”。您能否稍微详细解释一下,在Java、C#中,引用类型如何指定模式而值类型则不会? - A. K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接