Maison > Article > développement back-end > Comment avoir une fonction d'interface qui a des paramètres d'entrée d'interface et une valeur de retour du même type ?
J'essaie d'implémenter une fonction dans mon package utilitaire qui paginera tout type de tranche donnée. Il doit accepter une partie de l'interface ainsi que la page et la taille de la page, et doit renvoyer le même type d'interface.
Cependant, lorsque j'essaie d'utiliser la fonction, j'obtiens une erreur : Ma saisie est différente de
接口{}
Entrez
cannot use result (variable of type []entity.something) as []interface{} value in argument to utility.paginateslice compilerincompatibleassign
Voici ma fonction :
// paginatelist, paginates a slice based upon its page and pagesize. func paginateslice(x []interface{}, page, pagesize int) []interface{} { var maxsize int = len(x) start := (page - 1) * pagesize end := start + pagesize - 1 if start > maxsize || page < 1 || pagesize < 1 { start = 0 end = 0 } else if end > maxsize { end = maxsize } return x[start:end] }
Voici un exemple de moi essayant de l'utiliser qui a abouti à un échec :
var result []entity.Something tmps := utility.PaginateSlice(dataOfSomethingType, pagination.Page, pagination.PageSize) for _, tmp := range tmps { if value, ok := tmp.(entity.Something); ok { result = append(result, value) }
utiliseparamètres de type :
func PaginateSlice[S ~[]T, T any](x S, page, pageSize int) S { // insert body of function from question here }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!