Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Casting 埃菲尔铁塔:古典型铸造开关结构,带有连接和检查功能_Casting_Switch Statement_Eiffel - Fatal编程技术网

Casting 埃菲尔铁塔:古典型铸造开关结构,带有连接和检查功能

Casting 埃菲尔铁塔:古典型铸造开关结构,带有连接和检查功能,casting,switch-statement,eiffel,Casting,Switch Statement,Eiffel,做以下事情的最佳实践是什么 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

做以下事情的最佳实践是什么

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
编译器在

更新:为什么有这样的需要?
因为我碰巧搞砸了重复的复制粘贴,这是一种语言试图避免的。在上面的例子中,
l_pet
只写了一次,其中if/else的次数是N次,if/else的次数与if的次数相同……

一个
inspect
语句允许检查表达式是否有特定的值,并且可以应用于整数类型的表达式(例如
INTEGER\u 64
CHARACTER\u 32
NATURAL\u 8
):

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

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
语句允许检查表达式是否具有特定值,并且可以应用于整数类型的表达式(例如
INTEGER\u 64
CHARACTER\u 32
NATURAL\u 8
):

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

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

在多分支指令中

检查exp when…然后…else…end

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

在你给出的例子中,我认为没有必要这样做, 但是如果你需要这样做,你需要使用条件指令


如果…那么
... 
艾尔塞夫…那么
... 
其他的
... 
结束

在多分支指令中

检查exp when…然后…else…end

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

在你给出的例子中,我认为没有必要这样做, 但是如果你需要这样做,你需要使用条件指令


如果…那么
... 
艾尔塞夫…那么
... 
其他的
... 
结束

stackexchange上缺少一个拇指支撑按钮,上面写着“amuzing示例”,希望您喜欢阅读我;-)stackexchange上缺少一个拇指支撑按钮,上面写着“amuzing示例”,希望您喜欢阅读我;-)