相关疑难解决方法(0)

在哈希中交换键和值

在Ruby中,如何在Hash上交换键和值?

假设我有以下哈希:

{:a=>:one, :b=>:two, :c=>:three}
Run Code Online (Sandbox Code Playgroud)

我想转变成:

{:one=>:a, :two=>:b, :three=>:c}
Run Code Online (Sandbox Code Playgroud)

使用地图似乎相当乏味.有更短的解决方案吗?

ruby hashmap

146
推荐指数
2
解决办法
5万
查看次数

Ruby中类似Java的高级枚举

首先,这不是Ruby枚举的重复:)

该问题的公认答案表明这是在Ruby中表示枚举的一种好方法:

class Foo
  BAR = 1
  BAZ = 2
  BIZ = 4
end
Run Code Online (Sandbox Code Playgroud)

在Java中,可以将多个值和方法附加到枚举值.我想在Ruby中实现相同或类似的东西.

什么是最类似Ruby的方式来表示这个Java枚举:

public enum Enum

    VALUE_1("Value 1"),
    VALUE_2("Value 2"),
    VALUE_3("Value 3");

    Enum(String value) {
        this.value = value;
    }
    public String getValue() {
        return value;
    }
    private String value;
}  
Run Code Online (Sandbox Code Playgroud)

编辑:

我还想保留Java枚举的隐含功能:

  • ...检索序数值
  • ...在枚举值上调用方法(或类似的东西)

例子:

Enum.VALUE_1.getValue(); // "Value 1"
Enum.VALUE_2.name();     // "VALUE_2"
Enum.VALUE_3.ordinal();  // 2
Run Code Online (Sandbox Code Playgroud)

ruby java enums

6
推荐指数
1
解决办法
2364
查看次数

标签 统计

ruby ×2

enums ×1

hashmap ×1

java ×1