2017-01-01 11 views
0

ネットワークネームスペース内からルートリストを印刷しようとしています。 netlink.RouteList関数にはInterface型が必要です。すべてのインターフェイスのリストはLinkList()によって収集されます。Goのリスト内からリストを印刷する。ループ障害

私はすべてのインタフェースでRouteListを呼び出して、それを出力しようとしています。 RouteListはRouteタイプを返します。ここでは、int LinkIndexを印刷しようとしています。私のループ

for j := range rt { 
    log.Printf("Route: %d : %d",rt[j].LinkIndex) 
    } 

は何も得ないで別のprintfテストを実行し、何らかの理由で実行されていないかのように。それが表示されます

なぜこのループは呼び出されませんか?

func (h *NSHandle) showInts() { 
    nh := (*netlink.Handle)(h) //cast required 
    int, err := nh.LinkList() 
    if err != nil { 
     log.Fatal(err) 
    } 
    log.Printf("Namespace Ints:") 
    for i, r := range int { 
     log.Printf("%d: %s", i, r.Attrs().Name) 
     rt, err := netlink.RouteList(r,-1) 
     if err != nil { 
     log.Fatal(err) 
     } 
     for j := range rt { 
     log.Printf("Route: %d : %d",rt[j].LinkIndex) 
     } 
    } 
} 

答えて

1

これは悪い質問でした。すぐに投稿した後、私はRouteListが受信者なしで呼び出されていたという事実のために、配列が明らかに空であることに気付きましたHandler。これは簡単に修正されました:

for i, r := range rl { 
    log.Printf("%d: %s", i, LinkIndex) 
    } 
関連する問題