2012-05-02 14 views
82

Ví dụ: tôi muốn sử dụng cả văn bản/mẫu và html/mẫu trong một tệp nguồn. Nhưng đoạn mã dưới đây ném lỗi.Làm thế nào để nhập và sử dụng các gói khác nhau có cùng tên trong ngôn ngữ Go?

import (
    "fmt" 
    "net/http" 
    "text/template" // template redeclared as imported package name 
    "html/template" // template redeclared as imported package name 
) 

func handler_html(w http.ResponseWriter, r *http.Request) { 
    t_html, err := html.template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`) 
    t_text, err := text.template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`) 

} 
+1

Cảm ơn bạn đã đặt câu hỏi này. Chắc chắn nó nằm trong tài liệu, nhưng hướng dẫn cũng khuyến khích bạn không nghĩ về nó, và sau đó khi bạn cần tìm ra nó, bạn không muốn đào. :) –

Trả lời

158
import (
    "text/template" 
    htemplate "html/template" // this is now imported as htemplate 
) 

đọc thêm về nó in the spec.

+1

Bạn nói đúng. Nó hoạt động. Cảm ơn – hardPass

+2

@hardPass: vui lòng nhấp vào biểu tượng "đánh dấu" bên cạnh câu trả lời này để báo hiệu câu trả lời chính xác và được chấp nhận. – Ashe

+1

Đây là một câu trả lời hoàn hảo: cho bạn thấy những gì bạn cần biết, nhưng cũng cung cấp một liên kết để biết thêm thông tin. Bravo! –