2015-10-18 49 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

哦,我明白了。我需要在对象名称前面提供库名称。我的问题已清理完毕。谢谢您的回答。 –

相关问题