在Genie中使用GLib.HashTable

时间:2013-04-02 09:46:13

标签: vala genie

如何在Genie中访问GLib.HashTable?我正在尝试为libsoup HTTP服务器编写一个处理程序方法。查询参数是GLib.HashTable。当我尝试访问查询时,例如与

def search_handler (server : Soup.Server, msg : Soup.Message, path : string, 
                query : GLib.HashTable?, client : Soup.ClientContext)
 response_text : string = null
 if query is not null && query.contains("expr")
     response_text = get_search(query.get("expr"))

我收到了错误:

error: missing generic type arguments
    response_text = get_search(query.get("expr"))
                               ^^^^^

我找到的唯一方法是创建一个新的HashTable对象:

p : GLib.HashTable of string, string = query
expr : string = p.get("expr")

处理此问题的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我可以尝试:字符串,字符串

var d = new dict of string,string
d["one"]="1"
d["two"]="2"
print "%s",d["one"]

答案 1 :(得分:1)

类似这样的事情

[缩进= 4]

init
    var h = new HashTable of string, int (str_hash, str_equal)
    h["foo"] = 123
    h["bar"] = 456

    foo ("foo", h)


def foo (key: string, hash: HashTable of string, int)
    // PUT HASHTABLE IN THE END
    if hash.contains (key)
        stdout.printf ("%s => %i", key, hash[key])