在埃菲尔铁塔中,实体、变量、字段和参数之间有什么区别



我见过用于描述埃菲尔铁塔事物的术语实体、变量参数,它们看起来与我非常相似,我想了解使用任何一个术语而不是另一个术语背后的意图是什么。

参数— 某些例程需要一些数据才能运行。想象一个虚构的功能foo (x, y: INTEGER; z: BOOLEAN).此例程有 3 个参数:xyz。调用例程时,必须为其提供三个有效参数,例如foo(6, 92, False)。我们传递给例程的这些值称为实际参数,而定义中定义的占位符称为形式参数

我读过对象字段,它们指定了对象结构中存储值的位置(引用或扩展对象)。

我认为我唯一一次看到术语变量是针对局部变量,内部特征。

实体似乎是一个通用术语,用于表示具有名称的数据容器,因此局部变量参数查询(返回一些数据的特征)都是实体的示例。

CurrentResult属于什么类别?局部变量

有人可以帮助我使用术语吗?

规格

根据 ISO/IEC 25436:2006(E) 和新添加的语言结构:

基于语法的术语

局部变量是以下任何一种:

  • Local_declarations部分(特征主体,包括内联代理)中声明的标识符
  • 预定义实体Result

正式论证

  • 表示调用方传递的信息的标识符

实际参数

  • 对例程的特定调用中的表达式

变量属性是满足以下所有条件的功能声明:

  • 没有正式的论据
  • 有一个
  • 查询标记(即它有一个类型)
  • 没有显式值(即它不是常量)
  • 如果有主体,则属于属性类型

常量属性是满足以下所有条件的功能声明:

  • 没有正式的论据
  • 有一个
  • 查询标记(即它有一个类型)
  • 有一个显式值

集体条款

变量是以下任一变量

  • 变量属性的最终名称
  • 局部变量(包括Result)

只读实体是以下任一实体:

  • 正式论证
  • 对象测试本地
  • 游标本地(循环Iteration_part
  • )
  • 单独的本地(Separate_instruction)
  • 常量属性
  • Current

实体是以下任何一种:

  • 变量
  • 只读实体

查询是以下任一查询

  • 属性
  • 功能

即查询是一个具有类型的功能,可用于在运行时获取值。

语义术语

字段

  • 非基本类型的直接实例中的值,对应于属性

class C feature
pi: REAL_32 = 3.14
double (x: LIST [INTEGER]): LIST [INTEGER]
local
r: ARRAYED_LIST [INTEGER]
do
create r.make (x.count)
across x as c loop
r.extend (c.item * 2)
end
Result := r
end
average_age: NATURAL
count: NATURAL
print_list (x: LIST [PERSON])
do
average_age := 0
count := 0
x.do_all (agent (p: PERSON)
do
if attached p.name as n then
io.put_string (n + ": " + p.age.out + "%N")
average_age := average_age + p.age
count := count + 1
end
end)
if count > 0 then
average_age := average_age // count
end
end
end

基于语法的术语

局部变量:rResult

对象测试本地:n

游标本地:c

正式论证:xp

实际参数:x.count2(这是乘法的参数)、c.item * 2": "(字符串连接)、p.age.out"%N"n + ": " + p.age.out + "%N"p.age10count(除法)。

变量属性:average_agecount

常量属性:pi

集体条款

变量:rResultaverage_agecount

只读实体:pincxp

实体:pirResultaverage_agecountncxp

查询:pidoubleaverage_agecount

您将在 ECMA Eiffel 规范(标准 ECMA-367,第 8 节:语言规范)中看到这些术语的明确定义。

总结一下:

实体可以是:参数、局部、属性(包括常量属性)、当前结果

变量是局部或属性(不包括常量属性)。但是,我们经常将结果视为伪局部变量,因此也可以将其称为变量,但标准没有。

请注意,以上都不包含例程(即过程或函数,在 Eiffel 术语中也称为命令和查询)。

相关内容

  • 没有找到相关文章

最新更新