将字符串指向字符串

时间:2014-10-21 18:41:14

标签: pointers go

是否可以从指向字符串的指针获取字符串值?

我正在使用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

2 个答案:

答案 0 :(得分:61)

取消引用指针:

strPointerValue := *strPointer

答案 1 :(得分:4)

首先检查字符串指针是否为nil的简单函数可以防止运行时错误:

func DerefString(s *string) string {
    if s != nil {
        return *s
    }

    return ""
}