2015-10-18 66 views
0

我有一個錯誤。 Document是goquery庫上的struct對象。 我無法在下面的代碼中使用它。我能怎麼做?如何使用庫對象?

package main 
import (
    "log" 
    "github.com/PuerkitoBio/goquery" 
    "os" 
) 

func getLocalFile(filename string) (*Document) { // Error 
    f, e := os.Open(FILTER_FILE) 
    if e != nil { 
     log.Fatal(e) 
    } 
    defer f.Close() 

    doc, e := goquery.NewDocumentFromReader(f) 
    if e != nil { 
     log.Fatal(e) 
    } 
    return doc 
} 

const FILE_NAME = "input.html" 
func main() { 
    doc := getLocalFile(FILE_NAME) 
    println(doc) 
} 

回答

4

The Go Programming Language Specification

Qualified identifiers

一個合格的標識符是與包名 前綴限定的標識符。包名稱和標識符不能爲空。

QualifiedIdent = PackageName "." identifier . 

一個合格的標識符訪問在不同的包,其中 必須導入的標識符。該標識符必須導出並在該包的包裝塊中聲明 。

math.Sin // denotes the Sin function in package math 

使用完全合格的名稱:goquery.Document。例如,

package main 

import (
    "github.com/PuerkitoBio/goquery" 
    "log" 
    "os" 
) 

func getLocalFile(filename string) *goquery.Document { 
    f, e := os.Open(filename) 
    if e != nil { 
     log.Fatal(e) 
    } 
    defer f.Close() 

    doc, e := goquery.NewDocumentFromReader(f) 
    if e != nil { 
     log.Fatal(e) 
    } 
    return doc 
} 

const FILE_NAME = "input.html" 

func main() { 
    doc := getLocalFile(FILE_NAME) 
    println(doc) 
} 
+0

哦,我明白了。我需要在對象名稱前面提供庫名稱。我的問題已清理完畢。謝謝您的回答。 –