是否可以从指向字符串的指针获取字符串值?
我正在使用goopt包来处理标志解析,而包只返回*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]()
Run Code Online (Sandbox Code Playgroud)
你可以看到这里展示的问题http://play.golang.org/p/1s0-d-GO-L
One*_*One 77
取消引用指针:
strPointerValue := *strPointer
Run Code Online (Sandbox Code Playgroud)
Oza*_*zan 13
首先检查字符串指针是否为 nil 的简单函数可以防止运行时错误:
func DerefString(s *string) string {
if s != nil {
return *s
}
return ""
}
Run Code Online (Sandbox Code Playgroud)