关于golang:go变量

package main

import (
    "fmt"
    "reflect"
    "unsafe"
)

func main() {
    var s1, s2 string
    var sh1, sh2 *reflect.StringHeader
    s1 = "abcd"
    s2 = s1

    sh1 = (*reflect.StringHeader)(unsafe.Pointer(&s1))
    fmt.Println(sh1.Data, sh1.Len, &s1)

    sh2 = (*reflect.StringHeader)(unsafe.Pointer(&s2))
    fmt.Println(sh2.Data, sh2.Len, &s2)

    s2 = "cdef123"

    sh2 = (*reflect.StringHeader)(unsafe.Pointer(&s2))
    fmt.Println(sh2.Data, sh2.Len, &s2)

}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理