gpt4 book ai didi

具有有限离散值的 Ruby 类

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:51 25 4
gpt4 key购买 nike

假设我打算编写一个赛马博彩应用程序,我想要一个可以有四个离散值的 RaceResult 类:WinPlaceShow 和“空对象”类 Lose

我是从 C# 背景开始接触 Ruby 的,我通常会为此使用 enum,或者可能是私有(private)构造函数创建的一系列静态只读字段,如下所示:

public class RaceResult {
public static RaceResult Win = new RaceResult(1);
// ...

private int lowestPositionToWin;

private RaceResult(int position) {
lowestPositionToWin = position;
}

private bool PaysOut(int placement) {
return placement <= lowestPositionToWin; // logic may be flawed here
}
}

如果类变得太复杂,我会重构以使用策略模式。

解决这个需求的 Ruby 方法是什么?我可以创建一个只能有四个实例的类吗?我在使用 Google 查询来查找我要查找的信息时遇到问题。

编辑:在第一个答案中,我得到了一些很好的方法来处理我只想要一个命名的原始值的情况。但是,如果我有兴趣扩展它的行为,我需要一个自定义类。有没有办法修改常量方法来使用类?

最佳答案

不确定我是否理解您的要求,但是 Hash 怎么样?哪个更像 ruby ?

race_results = { win: 1, place: 2, show: 3, lose: 4 }

关于具有有限离散值的 Ruby 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771198/

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