strings包中提供了两个内存字符串的对象

  1. package main
  2. func main(){
  3. // strings,bytes
  4. // 内存字符串的操作
  5. // 读,写
  6. // strings.Reader
  7. reader:=strings.NewReader("123123")
  8. ctx:=make([]byte,5)
  9. n,err:=reader.Read(ctx)
  10. fmt.Println(n,err,string(ctx[:n]))
  11. reader.Seek(0,0) //光标位移
  12. reader.Reset("xyz") //重置字符串
  13. reader.WriteTo(os.Stdout) //写到输出
  14. // strings.Builder
  15. var builder strings.Builder
  16. builder.Write([]byte("Abc123")) // 写一个字节切片
  17. builder.WriteString("xyz") //写一个字符串
  18. }

bytes包中提供了 Reader,Buffer两个对象,bytes主要针对内存切片处理

  1. func main(){
  2. // Reader对象
  3. byteReader:=bytes.NewReader([]byte("abc123abc"))
  4. ctx:=make([]byte,5)
  5. n,err:=byteReader.Read(ctx)
  6. fmt.Println(bytereader.Len(),byteReader.Size())
  7. //Buffer对象,可读可写,用处较多
  8. buffer:=bytes.NewBufferString("abc")
  9. buffer.WriteString("123")
  10. n,err:=buffer.Read(ctx)
  11. fmt.Println(err,string(ctx[:n]))
  12. fmt.Println(buffer.String()) //相当于读
  13. }
文档更新时间: 2021-09-24 17:39   作者:张尚