2013-04-02 6 views
3

지니에서 GLib.HashTable에 액세스하려면 어떻게해야합니까? libsoup HTTP 서버에 대한 처리기 메서드를 작성하려고합니다. 쿼리 매개 변수는 GLib.HashTable입니다. 예를 들어 쿼리에 액세스하려고 할 때지니에서 GLib.HashTable 사용

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

이 처리하는 올바른 방법은 무엇입니까 : 내가 찾은

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

유일한 방법은 새로운 해시 개체를 만드는 것입니다 :

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

와 나는 오류가 발생했습니다?

+2

.HashTable ? " (또는 올바른 유형이 무엇이든간에). 지니 방법은 "GLib.HashTable? of string, string"이 될 것이라고 생각합니다. 그러나 여기에서 시도 할 때 구문 오류가 발생합니다. 나는 옳은 대답이 무엇인지 모르겠다. (아마 Genie의 버그 다.) 그러나 잘하면 당신이 그것을 찾는데 도움이된다. – nemequ

답변

1

는 당신이 시도 할 수있을 내 : 문자열의 DICT, 문자열

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

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며, 충분한 평판을 받으면 (http://stackoverflow.com/faq#reputation) [모든 게시물에 댓글 달기] (http://stackoverflow.com/privileges/comment). –

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