例如,
package main
import (
"fmt"
"unsafe"
)
type String struct {
str *byte
len int
}
func main() {
str := "abc"
substr := string([]byte(str[1:]))
fmt.Println(str, substr)
fmt.Println(*(*String)(unsafe.Pointer(&str)), *(*String)(unsafe.Pointer(&substr)))
}
Run Code Online (Sandbox Code Playgroud)
输出:
abc bc
{0x4c0640 3} {0xc21000c940 2}
Run Code Online (Sandbox Code Playgroud)