根据下面的示例,我需要根据需要获取电子邮件,firstname和dateofbirth等NullStrings和NullTimes,因为我的User结构正在使用它们.如何将变量声明为NULL
package entities
import (
"database/sql"
"github.com/go-sql-driver/mysql"
"testing"
"time"
)
var (
email = sql.NullString("leebrooks0@gmail.com") << Does not work
hashedPassword = "password"
firstName = "Lee"
lastName = "Brooks"
dateOfBirth = time.Now
height = 1.85
weight = 101.3
)
func privacyConcernedUser() *User {
return &User{
Email: email, << These all complain eg: cannot use Email (type string) as type sql.NullString in field value
HashedPassword: hashedPassword,
FirstName: firstName,
LastName: lastName,
}
}
Run Code Online (Sandbox Code Playgroud)
az_*_*az_ 11
sql.NullString不是该string类型的直接替代品,您必须使用它.
package main
import "database/sql"
import "fmt"
type User struct {
Name string
}
func main() {
var nsName sql.NullString
if err := nsName.Scan("User's Name"); err != nil {
panic(err)
}
user := &User{Name: nsName.String}
fmt.Println(user)
}
Run Code Online (Sandbox Code Playgroud)
您可以检查它NullString是否有效nsName.Valid.
http://golang.org/pkg/database/sql/#NullString
sql.NullString("leebrooks0@gmail.com") << Does not work
尝试:
sql.NullString{"leebrooks0@gmail.com", true}
参见http://golang.org/pkg/database/sql/#NullString