tratando de tener un tipo Char
que es un string
de un carácter de largo. lo que no puedo hacer es crear un "constructor". Sé que me estoy perdiendo algo completamente obvio.En Go, ¿cómo creo un "constructor" para un tipo con un tipo base de cadena?
declarar el tipo Char
type Char string
puede utilizar ese tipo con una declaración
var c1 Char("abc") var c2 Char = "abc"
éstos están equivocados: c1
y c2
necesidad de ser "una" y no "abc"
Lo que realmente quiero es un "constructor" para limitar Char a un personaje
func Char(s string) Char { var ch string = s[0] return ch }
, por supuesto, tener la type Char
y func Char
no es la manera de hacerlo
type.go:8: Char redeclared in this block
¿hay alguna manera de forzar type
inicialización a través de un constructor? o incluso estoy haciendo la pregunta correcta?
permítanme decir de otra manera: si el usuario dice var c Char = "abc"
tendrán un valor no válido para el tipo Char
- ¿Hay alguna manera de forzar al usuario a func NewChar(string) Char
como Char
's único constructor válida?
Es el lenguaje de programación Go, no golang. – peterSO
perdón por el golang - pensé que estaba viendo eso como una referencia estándar. la diferencia entre las goggles para "go" vs "golang" es enorme, por lo que siempre hemos intentado poner la frase "golang" como cortesía, pero abierto a las sugerencias –
Si quieres forzar al constructor, debes poner tu código en un archivo separado paquete, exponer interfaz pública y un constructor que devolverá una estructura privada que implementa la interfaz. –