在Go语言中不倾向于使用单引号来表示字符串,请根据需要使用双引号或反引号。
一个Go语言字符串是一个任意字节的常量序列。Go语言的字符串类型在本质上就与其他语言的字符串类型不同。Java的String、C++的std::string以及python3的str类型都只是定宽字符序列,而 Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 。
Go语言中的字符串字面量使用 双引号 或 反引号 来创建 :
双引号用来创建 可解析的字符串字面量 (支持转义,但不能用来引用多行);
反引号用来创建 原生的字符串字面量 ,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、HTML以及正则表达式。
反引号中不能转义反引号,如果需要,可以拼接
query := `SELECT * FROM ` + "`table_name`"
在结构体中,字段声明后可以跟一个可选的字符串字面量标记 tag,它将作为相应被声明字段的一个属性。一个空的标记字符串等价于一个缺失的标记。标记可以通过反射接口进行访问并参与到结构体的类型身份识别中,其他情况下这个属性将被忽略。
struct { x, y float64 "" // an empty tag string is like an absent tag name string "any string is permitted as a tag" _ [4]byte "ceci n'est pas un champ de structure" } // A struct corresponding to a TimeStamp protocol buffer. // The tag strings define the protocol buffer field numbers; // they follow the convention outlined by the reflect package. struct { microsec uint64 `protobuf:"1"` serverIP6 uint64 `protobuf:"2"` }
最新评论: