散列到自定义数组实现

时间:2013-07-20 21:22:22

标签: ruby arrays

今天最后一个新手问题。哈希:

h = {a: 1, b: 2, c: 3}

如何使用这样的输出实现convert_to_arr(h)方法:

convert_to_arr(h) 
# ["Key: 'a', Value: '1'",  
# "Key: 'b', Value: '2'",  
# "Key: 'c', Value: '3'"]

谢谢!

3 个答案:

答案 0 :(得分:4)

{a: 1, b: 2, c: 3}.map { |key, value| "Key: '#{key}', Value: '#{value}'" }

=> ["Key: 'a', Value: '1'", "Key: 'b', Value: '2'", "Key: 'c', Value: '3'"]

答案 1 :(得分:2)

h = {a: 1, b: 2, c: 3}
h.map{|k,v| "key: '#{k}' ,val: '#{v}'"}
# => ["key: 'a' ,val: '1'", "key: 'b' ,val: '2'", "key: 'c' ,val: '3'"]

答案 2 :(得分:-1)

你总是可以实现一个结构:

struct keyItem
{
    char key[30];
    int value;
}

然后做这样的事情:

keyItem h[3] =
{
    { "a", 1 },
    { "b", 2 },
    { "c", 3 }
}

你的功能如下:

void print_keys(keyItem[] k, int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("Key: \"%s\", Value: '%d'\n", k[i].key, k[i].value);
    }
}