面试题答案
一键面试- 字符串转换为字节切片
- 使用
[]byte()
方式:
- 使用
package main
import (
"fmt"
)
func main() {
str := "hello"
byteSlice := []byte(str)
fmt.Printf("%T\n", byteSlice)
}
- 优势:这种方式是Go语言内置的类型转换方式,简单直接,性能高效。在底层实现上,它直接将字符串的内容复制到新的字节切片中,没有额外的中间操作,因此在性能上是非常高的。相比一些常规方式如遍历字符串逐个添加字节到切片中,这种内置转换方式效率更高,代码也更加简洁。
- 字节切片转换回字符串
- 使用
string()
方式:
- 使用
package main
import (
"fmt"
)
func main() {
byteSlice := []byte("world")
str := string(byteSlice)
fmt.Printf("%T\n", str)
}
- 优势:同样,这是Go语言内置的类型转换方式。它直接根据字节切片的内容创建一个新的字符串,在底层实现上也很高效。相比于一些手动拼接字节生成字符串的常规方式,这种方式代码简洁,并且由于是内置实现,在性能上有优化,避免了手动拼接可能带来的额外开销,如频繁的内存分配和复制操作。
在Go语言的bytes
包中,虽然bytes
包提供了一些操作字节切片的功能,但在字符串和字节切片相互转换时,直接使用Go语言内置的[]byte()
和string()
类型转换方式是最为高效和简洁的。