ОШИБКА reflect.valueOf(val).Значение нуля не определено (тип reflect.Value не имеет поля или метода равно нулю

#go #reflection #go-gorm

#Вперед #отражение #go-gorm

Вопрос:

Я хочу использовать gorm в своем коде, но, к сожалению, при запуске я go run *.go вижу эту ошибку.

 /var/www/html/src/gorm.io/gorm/utils/utils.go:46:30: reflect.ValueOf(val).IsZero undefined (type reflect.Value has no field or method IsZero)

  

это мой код:

 package main

import (
    "gorm.io/gorm"
    "gorm.io/driver/sqlite"
)

type Product struct {
    gorm.Model
    Code  string
    Price uint
}

func main() {
db, err := gorm.Open(sqlite.Open("test.db"), amp;gorm.Config{})
if err != nil {
    panic("failed to connect database")
}

// Migrate the schema
db.AutoMigrate(amp;Product{})

// Create
db.Create(amp;Product{Code: "D42", Price: 100})
}
  

Комментарии:

1. Не могли бы вы поделиться трассировкой стека для лучшего понимания

2. Не связан, но вы никогда не должны запускать проект go run *.go . См . golang.org/doc/code.html для начала.

3. @JimB спасибо. Да, но я просто хотел отладить код

Ответ №1:

Value.IsZero() Метод был добавлен в Go 1.13. Вы должны использовать Go 1.13 или более позднюю версию, если ваш код полагается на эту «функцию».

Вы можете проверить свою версию go, выполнив go version .