首页 > 其他分享 >字符串与byte的使用

字符串与byte的使用

时间:2022-12-17 21:57:15浏览次数:31  
标签:string unsafe Len sh 使用 字符串 byte strings

字符串涉及的用法strings

1)统计      strings.Count
2)替换      strings.Replace()
3)组合      strings.Join()    
4)清洗      strings.Trim()
5)查找子串    strings.Index();strings.Contains()
6)分割        strings.Split()
7)大小写替换    strings.ToUpper()
8)前缀和后缀    strings.HasPrefix()

byte的用法

byte的定义初始化
第一种方式
    var b byte
    b = byte(1)#这里可以是0-255
第二种方式
    b := []byte("china is beautiful")
使用调用函数的方式与strings一致

string->byte

    a:="hello world"
    byte_a := []byte(a)
    string_a := string(byte_a)
    fmt.Println(byte_a)//[104 101 108 108 111 32 119 111 114 108 100]
    fmt.Println(string_a) 

通过unsafe和reflect包,可以实现另外一种转换方式,我们将之称为强转换(也常常被人称作黑魔法)。



func String2Bytes(s string) []byte { 
    sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
    bh := reflect.SliceHeader{ 
        Data: sh.Data,
        Len:  sh.Len,
        Cap:  sh.Len,
    }
    return *(*[]byte)(unsafe.Pointer(&bh))
}
func Bytes2String(b []byte) string { 
    return *(*string)(unsafe.Pointer(&b))
}

 

 

 

 

 

标签:string,unsafe,Len,sh,使用,字符串,byte,strings
From: https://www.cnblogs.com/topass123/p/16989598.html

相关文章