2015-10-07 47 views
0

我得到一个编译器错误“w.Write未定义(类型rest.ResponseWriter没有字段或方法Write)”转到编译未定义的方法

我创建了一个光秃秃的骨头测试文件,并有同样的问题:

package server 

import (
     "github.com/ant0ine/go-json-rest/rest" 
) 

func WriteTest(w rest.ResponseWriter) { 
     var bs []byte 
     w.Write(bs) 
} 

编译器说没有定义的方法肯定是在rest package

回答

5

的rest.ReponseWriter类型没有写,它有以下方法:

Header 
WriteJson 
EncodeJson 
WriteHeader 

然而,它说的是in the comments方法http.ResponseWriter可通过类型断言。所以你应该可以写出以下内容:

package server 

import (
     "github.com/ant0ine/go-json-rest/rest" 
     "net/http" 
) 

func WriteTest(w rest.ResponseWriter) { 
     var bs []byte 
     w.(http.ResponseWriter).Write(bs) 
} 
2

Write定义在responseWriter上。请注意小写r