是否可以从指向字符串的指针获取字符串值?
我正在使用goopt package来处理标志解析,而包只返回* string。但我想使用这些值来调用地图中的函数。
作为一个例子。
var strPointer = new(string)
*strPointer = "string"
functions := map[string]func() {
"string": func(){
fmt.Println("works")
},
}
//Do something to get the string value
functions[strPointerValue]()
您可以在此处看到问题http://play.golang.org/p/1s0-d-GO-L
答案 0 :(得分:61)
取消引用指针:
strPointerValue := *strPointer
答案 1 :(得分:4)
首先检查字符串指针是否为nil的简单函数可以防止运行时错误:
func DerefString(s *string) string {
if s != nil {
return *s
}
return ""
}