2016-04-04 2 views
3

Я прогоняю на структуру, которая имеет тип time.Time вGo - Разбираем NULL для time.Time в Struct

t2 := time.Now() 
format := "2006-01-02 15:04:05" 

theTime, _ := time.Parse(format, t2.Format(format)) 

Однако, иногда я не хочу, чтобы установить поле time.Time. , как вы определяете это с помощью драйвера go/mysql db?

app_history := &models.AppsHistoryInsert{ 
    AppId:   response.SetAppData[0].Id, 
    LiveDate:  &theTime, 
} 

В принципе, я хочу

if(x == true) { 
    include time 
} 
else { 
    don't include time. 
} 

я пытался делать в if вокруг самой структуры декларации и оставляя LiveDate поле вне, но я получил ошибку controllers/apps.go:1068: undefined: app_history

ответ

3

вам нужно определить переменная app_history вне оператора if, а затем назначить ей в каждой из ветвей

like так

var app_history &models.AppsHistoryInsert{} 

if x { 
    app_history = &models.AppsHistoryInsert{ 
    AppId:   response.SetAppData[0].Id, 
    LiveDate:  &theTime, 
    } 
}else { 
    app_history = &models.AppsHistoryInsert{ 
    AppId:   response.SetAppData[0].Id, 
    } 
} 
+1

В качестве альтернативы, в случае, если на самом деле есть нечто большее, чем этот init. Сделайте то же, что сейчас, но исключайте «LiveDate», а затем просто сделайте, если x {app_history.LiveDate = & theTime} после создания начальной структуры –

Смежные вопросы