我发现这个问题有这个很好的答案:
我玩弄了答案并尝试以相同的方式获取结构的名称:
package main
import (
"fmt"
"reflect"
)
type Ab struct {
}
func getType(myvar interface{}) string {
return reflect.TypeOf(myvar).Name()
}
func main() {
fmt.Println("Hello, playground")
tst := "string"
tst2 := 10
tst3 := 1.2
tst4 := new(Ab)
fmt.Println(getType(tst))
fmt.Println(getType(tst2))
fmt.Println(getType(tst3))
fmt.Println(getType(tst4))
}
Run Code Online (Sandbox Code Playgroud)
去游乐场:http://play.golang.org/p/tD8mygvETH
但输出是:
Hello, playground
string
int
float64
Program exited.
Run Code Online (Sandbox Code Playgroud)
预期产出将是:
Hello, playground
string
int
float64
Ab
Program exited.
Run Code Online (Sandbox Code Playgroud)
我试着通过阅读文档来弄清楚,但没有找到相关的问题.所以,对于非常普遍的问题感到抱歉,但是:
是什么原因,reflect.TypeOf().Name()不适用于(this)struct(s)?
标题说明了一切.
这就是我所拥有的:
preg_match_all("/@[\w_.]+/",$text_tbh, $matches);
Run Code Online (Sandbox Code Playgroud)
但这不包括带有特殊字符的单词.
谢谢