繁体   English   中英

埃菲尔铁塔:古典式压铸开关结构,附带并检查

Eiffel: classical typecasting switch structure with attached and inspect

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

做某事的最佳实践是什么

local
    l_pet: ANIMAL
do
    l_pet := catch_it_from_the_sky
    inspect l_pet
    when attached {DOG} l_pet as l_dog
        l_dog.eat (meat)
    when attached {FISH} l_pet as l_fish
        l_fish.eat (plants)
    else
        io.put_string ("Strange animal how do I feed him???")
    end
do

编译器与抱怨attached时,后...

更新:为什么有这种需要?

因为碰巧我弄乱了重复的复制粘贴,这是一种语言试图避免的粘贴。 在上面的例子中, l_pet被写入了一次,如果是/ l_pet ,我将被写入N次。

2 个回复

inspect语句允许检查表达式是否具有特定值,并且可以应用于整数类型的表达式(例如INTEGER_64CHARACTER_32NATURAL_8 ):

inspect age
when 6 .. 16 then ...
when 18 then ...
when 80, 90 then ...
...
end

为了区分对象类型,使用条件指令:

if attached {DOG} pet as dog then
   dog.eat (meat)
elseif attached {FISH} pet as fish then
   fish.eat (plants)
else
   io.put_string ("Strange animal how do I feed him???")
end

在多分支指令中

inspect exp when ... then ... else ... end

exp表达式必须是字符或整数表达式。

在您给出的示例中,我看不到需要执行Object-Test ,但是如果您需要执行类似的操作,则需要使用条件指令。

if ... then ... elseif ... then ... else ... end

1 结构类型转换

我有一个 有没有办法对结构成员st.a进行类型转换? 因为在少数地方我希望它为int而在少数地方我希望它为Char* ...

2011-05-30 06:33:17 2 889   c/ types
2 类型转换结构指针

嗨,伙计们。 我正在使用名为《 Pointers in C: A Hands on Approach的书研究结构和指针,在第107页上,我遇到了一个结构类型转换的不完整示例。 我试图通过仅实现功能receivedata() ,添加标头并进行一些更改来使其工作。 这是完整的代码: ...

3 C 结构指针的类型转换

在某些示例中混淆了在 C 中实现微不足道的侵入式容器。 我有结构: 和 Link for 成为列表的节点: 一些用于在 List 中存储指定值的伪节点: Function 用于在列表中推送值: List的用法和样例: 问题是,在这个例子中类型转换是如何工作的? 当sizeof(Link)==8和 ...

5 将Char类型转换为结构类型

我当时正在研究一个问题,作为一部分,它遇到了以下问题: 对于以下代码 编译时错误为: example.c:16:错误: a' in something not a structure or union example.c:17: error: request for memb ...

2011-01-20 09:56:11 4 2134   c/ casting
6 将argv类型转换为结构类型

我有一个结构定义为 我正在从其他某个program1获取可执行文件的输入参数。(其他程序使用输入参数作为此结构执行了program2 execve )。 我想知道,我可以将此输入参数进行类型转换为(struct xyz*)argv[1]; ,还是在发送之前必须将其转换为字符串格式 ...

7 在C中类型转换更大或更小的结构

我在C程序中有两个结构:SmallStructABC和BigStructXYZ 我俩都有几个成员。 SmallStructABC的所有10个成员与BigStructXYZ的前10个成员完全相同。 BigStructXYZ还有50个其他成员。 可以将这两个结构彼此类型转换吗? ...

8 将结构类型转换为整数时出错

我收到了错误 在编译此代码时: 有人可以解释错误的含义,以及我做错了什么。 编辑:我知道这是一个愚蠢的事情。 我想知道的是为什么编译器会为此而哭泣。 为什么它只能将前32位分配给整数。 ...

2012-09-18 19:57:11 4 12328   c/ casting
9 Typecasting结构指向字符指针

我的结构定义为 我在代码中找到了某个地方,他们将其类型化为(char *)Check 例如 - add_select((字符*)MSG) 在其定义中 我想知道,pfd.data.ptr中的ptr是无效指针,它将如何获取ptr的值作为连接类型。 这个怎么运作? ...

2016-09-03 07:04:54 1 616   c
10 经典结构比原型结构有什么好处?

我最近才开始编程,并且完全是自学成才,遗憾的是我没有详细的计算机科学课程的好处。 我最近一直在阅读很多关于JavaScript的内容,并且我试图在类中找到JavaScript的原型性质。 这个问题似乎是在一个更好的中间绘制出来的,我希望看到它的经典方面。 当我查看原型示例时: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM