data := map[string]interface{}{
"username": 'username1',
"password": 'password1'
}
I have a map[string]interface{} data, I want to form a string like below
str = "username='username1', password='password1'"
How can I form string like above i.e. key1='value1', key2='value2'....
I am new to golang
CodePudding user response:
Range over data. Add comma if not first. Write key. Write =. Write value.
data := map[string]interface{}{
"username": "username1",
"password": "password1",
}
var sb strings.Builder
for k, v := range data {
if sb.Len() > 0 {
sb.WriteString(", ")
}
sb.WriteString(k)
sb.WriteString(`="`)
sb.WriteString(fmt.Sprint(v))
sb.WriteString(`"`)
}
s := sb.String()
fmt.Println(s)
CodePudding user response:
Have you tried anything? There's lots of ways to do what you're trying to do. Some more peprformant than others, some easier to write... This would be a quick way to implement what you need:
func PrintStr(m map[string]interface{}) {
parts := make([]string, 0, len(m))
for k, v := range m {
parts = append(parts, fmt.Sprintf("%s=%v", k, v))
}
fmt.Printf("%s\n", strings.Join(parts, ";"))
}