gpt4 book ai didi

Ruby 一种根据条件执行函数的巧妙方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:57 26 4
gpt4 key购买 nike

作为一个有趣的项目,我正在用 Ruby 实现 Beatnik 解释器。如果您从未听说过 Beatnik,它是一种深奥的编程语言,其中的操作由源代码中单词的“拼字游戏分数”指定。

无论如何,实现需要对不同的拼字游戏分数进行不同的操作。这不是特别要实现,一种明显的方法是 if 语句:

if score == 1
...
elsif score == 2
...
else
...
end

另一种方法是使用 case 语句:

case score
when 1
...
when 2
...
else
...
end

但这两种方法都没有给我留下特别优雅的印象,您能建议一种替代的实现方法吗?

最佳答案

commands = {
1 => ->(p1,p2) {...},
2 => ->(p1,p2) {...},
3 => ->(p1,p2) {...},
}

commands[score].call(p1,p2)

插入您的代码代替...,并插入您的参数代替 p1、p2。这将创建一个称为命令的散列,从整数分数到匿名函数(-> 是 lambda 的缩写)。然后根据分数查找合适的函数,然后调用它!

关于Ruby 一种根据条件执行函数的巧妙方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com