相关疑难解决方法(0)

如何在Java中像Swift一样用构造函数实现枚举?

例如,我们有Java代码如下;

enum Job {
    NINJA(3000000){
        public void attack() {
            //use Shuriken
        }
    },
    SAMURAI(4000000){
        public void attack() {
            //use Sword
        }
    };
    public final int salary;
    public abstract void attack();
    private Job(int salary) {
        this.salary = salary;
    }
}
Run Code Online (Sandbox Code Playgroud)

在Swift中,我认为我们不能定义构造函数并且有任何枚举方法.

我发现在下面的Swift代码中我们可以有类似的结构,但是没有任何方法.

class Job {
    class Store {
        let salary : Int
        init(int salary) {
            self.salary = salary
        }
    }
    class var NINJA: Store{
        return Store(3000000)
    }
    class var SAMURAI: Store{
        return Store(4000000)
    }
}
// Job.NINJA.salary
Run Code Online (Sandbox Code Playgroud)

当然,我知道Swift枚举可以拥有自己的属性.

但是如果在下列情况下你有更多的属性,我们必须在每个属性上有这么多的开关.我认为这不聪明.

enum Job …
Run Code Online (Sandbox Code Playgroud)

java swift

5
推荐指数
1
解决办法
4002
查看次数

标签 统计

java ×1

swift ×1