2016-09-17 31 views
-1

我試圖解析可能爲空的表單帖子,如果它是我將更改該變量。試圖使用*string類型。我遇到的問題是忽略了最低爲dashUrl轉換,但確實爲start_time不能使用&dashUrl(類型* []字節)作爲類型*字符串在作業

package main 

import (
    "encoding/base64" 
    "strconv" 
    "github.com/gocraft/web" 
) 

type YoutubeContext struct { 
    StartTime *float64 `json:"start_time"` 
    DashUrl *string `json:"dash_url"` 
} 

func (c *YoutubeContext) SetYoutubeContext(rw web.ResponseWriter, req *web.Request, next web.NextMiddlewareFunc) { 
    if f, err := strconv.ParseFloat(req.FormValue("start_time"), 64); err == nil { 
     c.StartTime = &f 
    } 
    if dashUrl, dashUrlDecodeErr := base64.StdEncoding.DecodeString(req.FormValue("dash_url")); dashUrlDecodeErr == nil { 
     c.DashUrl = &dashUrl 

    } 

} 
func main() { 

} 

它顯示的錯誤是這樣

./test.go:19: cannot use &dashUrl (type *[]byte) as type *string in assignment

回答

0

在鼠被扶鬆弛聊天,需要做一個臨時變量

blah := string(dashUrl) 
c.DashUrl = &blah 
+0

你並不需要一個臨時變量,你只需要一個正確的類型:因爲API文檔說的是https:// golang。 org/pkg/encoding/base64 /#Encoding.DecodeString'base64.StdEncoding.DecodeString'返回'[]字節'切片而不是字符串。 –

+1

沒錯,但是我試圖讓它成爲整個程序後面的指針,如果它是空的,我會改變它。 – nadermx

+0

字節片的標準值是零AFAIK,這正是你所說的,不是嗎? –

相關問題