在Go中将[]字节切片编码为int64是否有更好或更惯用的方法?
package main
import "fmt"
func main() {
var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244}
var data int64
for i := 0; i < 8; i++ {
data |= int64(mySlice[i] & byte(255)) << uint((8*8)-((i+1)*8))
}
fmt.Println(data)
}
Run Code Online (Sandbox Code Playgroud)
我试图NAPTR在Go中查询记录.看来DNS"网络"库中提供的基础知识不会让我访问.因此我正在考虑使用(参见文档),但找不到任何基本的例子.是否有关于替代方案的建议或有关如何查询的一些见解NAPTR?
我正在尝试上传一个文件,要求我为API设置特定的Content-Type.当我这样做:
file, err := os.Open("helloWorld.wav")
buf := new(bytes.Buffer)
writer := multipart.NewWriter(buf)
audioFile, _ := writer.CreateFormFile("file", "helloWorld.wav")
_, err = io.Copy(audioFile, file)
if err != nil {
return nil, 0, err
}
writer.Close()
Run Code Online (Sandbox Code Playgroud)
它正确创建了多部分表单,但假设此内容类型:
Content-Type: application/octet-stream
Run Code Online (Sandbox Code Playgroud)
我需要能够将其设置为:
Content-Type: audio/wav;rate=8000
Run Code Online (Sandbox Code Playgroud)
当然我可以设置net/http的标题,我没有看到如何为多部分表单中的单个字段执行此操作.
我有一套测试,使用GoConvey和Go 1.3.1在本地工作得很好.但是当我用Jenkins触发构建时,还有Go 1.3.1,我得到了Goconvey的恐慌,这与我在测试中使用的go例程有关.
测试可以在这里看到:
func TestListApplication(t *testing.T) {
s := &Session{}
s.Username = "foo"
s.Password = "bar"
ts := serveHTTP(t)
defer ts.Close()
s.Baseurl = ts.URL
s.initialize()
go func() {
<-s.Comms.AppCount
}()
Convey("TestListApplication", t, func() {
s.Comms.MainWaitGroup.Add(1)
application := &Application{}
err := json.Unmarshal(applicationJSON(), application)
So(err, ShouldBeNil)
revisions := &Revisions{}
err = json.Unmarshal(revisionsJSON(), revisions)
So(err, ShouldBeNil)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
line := <-s.Comms.Msg
So(line, ShouldEqual, "3 admin foo\n")
}()
s.listApplication(application, revisions)
wg.Wait()
})
}
Run Code Online (Sandbox Code Playgroud)
这里的错误:
86 assertions …Run Code Online (Sandbox Code Playgroud)