Gorm: ¿Puedo usar la interfaz {} como destino de la consulta?

Creado en 19 feb. 2016  ·  3Comentarios  ·  Fuente: go-gorm/gorm

¿Cómo debo pasar la estructura que contiene interface{} ? El ejemplo con x2 funciona, pero el ejemplo con x1 no. ¿Es una característica o un error? ¿Es posible evitar esto de alguna manera?

package extensions

type Foo struct {
    Name string
}

func list() {
    var x1 interface{} = []Foo{}
    x2 := []Foo{}

    gormDB.Find(&x1) //unsupported destination, should be slice or struct
    gormDB.Find(&x2)
}

Comentario más útil

package main

import (
    _ "github.com/go-sql-driver/mysql"
    "github.com/jinzhu/gorm"
)

type Foo struct {
    gorm.Model
    Name string
}

var db *gorm.DB

func find(v interface{}) {
    db.Debug().Find(v)
}

func main() {
    var err error
    db, err = gorm.Open("mysql", "gorm:gorm@/gorm?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic(err)
    }

    db.AutoMigrate(&Foo{})

    var x1 = []Foo{}
    find(&x1)
}

Todos 3 comentarios

package main

import (
    _ "github.com/go-sql-driver/mysql"
    "github.com/jinzhu/gorm"
)

type Foo struct {
    gorm.Model
    Name string
}

var db *gorm.DB

func find(v interface{}) {
    db.Debug().Find(v)
}

func main() {
    var err error
    db, err = gorm.Open("mysql", "gorm:gorm@/gorm?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic(err)
    }

    db.AutoMigrate(&Foo{})

    var x1 = []Foo{}
    find(&x1)
}

@jinzhu Hola, no creo que funcione si asignamos x1 como tipo interface{} datos
¿Hay alguna forma de que podamos evaluar dinámicamente esas variables en la consulta?

func main() {
    var err error
    db, err = gorm.Open("mysql", "gorm:gorm@/gorm?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic(err)
    }

    db.AutoMigrate(&Foo{})

    var x1 interface{} = []Foo{}
    find(&x1)  // ERROR: unsupported destination, should be slice or struct 
}

@ SherL0cked
prueba find(reflect.ValueOf(x1).Interface())

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

sredxny picture sredxny  ·  3Comentarios

Quentin-M picture Quentin-M  ·  3Comentarios

RadhikaBhat picture RadhikaBhat  ·  3Comentarios

rfyiamcool picture rfyiamcool  ·  3Comentarios

koalacxr picture koalacxr  ·  3Comentarios