3

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")

これを処理する正しい方法は何ですか?

4

2 に答える 2

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])
于 2015-07-10T21:31:26.293 に答える
1

私はあなたが試すことができます:文字列の辞書、文字列

var d = new dict of string,string
d["one"]="1"
d["two"]="2"
print "%s",d["one"]
于 2013-04-08T22:48:20.777 に答える