This code below gives the following error. Any thoughts on what I am doing wrong?
./main.go:22:20: cannot convert *val (variable of type parameter T constrained by StringType) to string
./main.go:23:18: cannot convert strings.TrimSpace(str) (value of type string) to T
package main
import "strings"
func main() {
var msg = "Hello"
var _ = NewStringField(&msg)
}
type StringType interface {
~string
}
type StringField[T StringType] struct {
val *T
}
func NewStringField[T StringType](val *T) *StringField[T] {
if val == nil {
return nil
}
var str = string(*val)
var newVal = T(strings.TrimSpace(str))
return &StringField[T]{
val: &newVal,
}
}