En Python es posible dividir una cadena y asignarla a variables:
ip, port = '127.0.0.1:5432'.split(':')
pero en Go no parece funcionar:
ip, port := strings.Split("127.0.0.1:5432", ":")
// assignment count mismatch: 2 = 1
Pregunta: ¿Cómo dividir una cadena y asignar valores en un solo paso?

splittedString: =strings.Split("127.0.0.1:5432", ":")Respuesta: =splittedString[index]puede acceder al Valor de cadenaRespuestas:
Dos pasos, por ejemplo,
Salida:
Un paso, por ejemplo,
Salida:
fuente
errdesafortunadamente me devuelven esto :too many colons in address 2001:0db8:85a3:0000:0000:8a2e:0370:7334:(Como
goes flexible, puedes crear tu propiopythonestilo dividido ...fuente
Las direcciones IPv6 para campos como
RemoteAddrfromhttp.Requestestán formateadas como "[:: 1]: 53343"Entonces
net.SplitHostPortfunciona muy bien:Salida es:
fuente
Aquí está la definición de cadenas.
fuente
Hay varias formas de dividir una cadena:
_ _
División basada en la estructura:
_ _
Ahora use en su código como
ServerDetail.HostyServerDetail.PortSi no desea dividir una cadena específica, hágalo así:
y use like
ServerDetail.HostyServerDetail.Port.Eso es todo.
fuente
./prog.go:21:4: assignment mismatch: 1 variable but net.SplitHostPort returns 3 valuesLo que está haciendo es aceptar la respuesta dividida en dos variables diferentes y cadenas. Split () está devolviendo solo una respuesta y esa es una matriz de cadenas. necesita almacenarlo en una sola variable y luego puede extraer la parte de la cadena obteniendo el valor de índice de una matriz.
ejemplo:
fuente
Como nota al margen, puede incluir los separadores mientras divide la cadena en Ir. Para hacerlo, use
strings.SplitAftercomo en el ejemplo a continuación.fuente
Golang no admite el desempaque implícito de un segmento (a diferencia de Python) y esa es la razón por la que esto no funcionaría. Al igual que los ejemplos dados anteriormente, tendríamos que solucionarlo.
Una nota al margen:
El desempaquetado implícito ocurre para funciones variadas en go:
fuente