Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在Golang中将映射解压为字符串格式的关键字参数?_String_Dictionary_Go_Format_Argument Unpacking - Fatal编程技术网

String 如何在Golang中将映射解压为字符串格式的关键字参数?

String 如何在Golang中将映射解压为字符串格式的关键字参数?,string,dictionary,go,format,argument-unpacking,String,Dictionary,Go,Format,Argument Unpacking,在Python中,要使用字典格式化字符串,只需执行以下操作: geopoint = { 'latitude': 41.123, 'longitude':71.091 } print('{latitude} {longitude}'.format(**geopoint)) 输出将为41.123 71.091。如何在Go中实现相同的关键字解包映射以进行字符串格式设置 编辑:如果问题中不清楚,很抱歉,但我想做的是,像在Python中一样,为格式字符串中的值提供键。我建议使用结构来创建字段,

在Python中,要使用字典格式化字符串,只需执行以下操作:

geopoint = {
  'latitude': 41.123,
  'longitude':71.091
}

print('{latitude} {longitude}'.format(**geopoint))
输出将为
41.123 71.091
。如何在Go中实现相同的关键字解包映射以进行字符串格式设置


编辑:如果问题中不清楚,很抱歉,但我想做的是,像在Python中一样,为格式字符串中的值提供键。

我建议使用结构来创建字段,然后添加方法
string

代码:


如果我没有误解你的意思,你也可以这样做:

package main

import (
    "fmt"
)

var geopoint map[string]float64

func main() {
    geopoint = make(map[string]float64)
    geopoint["latitude"] = 41.123
    geopoint["longitude"] = 71.091

    fmt.Println(fmt.Sprintf("latitude : %f\nlongitude : %f", geopoint["latitude"], geopoint["longitude"]))
}
输出:

latitude : 41.123000
longitude : 71.091000

签入游乐场:

这是Smoker的想法,但是使用文本/模板的解决方案看起来像这样


很抱歉,如果这个问题不清楚,但是我想做的是,像在Python中一样,为格式字符串中的值提供键。我认为没有标准的方法可以做到这一点。至少就我对地图的了解而言。也许有一个库有一个奇怪的方法可以做到这一点。你可以使用
text/template
@JasonKao;但是正如前面提到的
fmt.Sprintf()
(带或不带
String()
函数)可能是实现它的“方式”(Go不是Python!)我想你通常会说
fmt.Sprintf(“%f%f”、geopoint[“latitude”]、geopoint[“longitude”])
,或者,如果你真的想,写你自己的函数(可能基于
regexp.ReplaceAllStringFunc
)。
latitude : 41.123000
longitude : 71.091000
package main

import (
    "os"
    "text/template"
)

func main() {
    geopoint := map[string]float64{
        "latitude":  41.123,
        "longitude": 71.091,
    }
    template.Must(template.New("").Parse(`{{ .latitude }} {{ .longitude }}`)).Execute(os.Stdout, geopoint)
}