前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang包——strings

Golang包——strings

作者头像
羊羽shine
发布2019-05-29 16:43:17
4120
发布2019-05-29 16:43:17
举报
文章被收录于专栏:Golang开发Golang开发
包含关系
代码语言:javascript
复制
// 子串substr在s中,返回true
func Contains(s, substr string) bool
// chars中任何一个Unicode代码点在s中,返回true
func ContainsAny(s, chars string) bool
// Unicode代码点r在s中,返回true
func ContainsRune(s string, r rune) bool
字符串转换

下面行为会出现数据越界,但是会返回最大值127

代码语言:javascript
复制
func TestStrConInt(t *testing.T) {
    n, err := strconv.ParseInt("128", 10, 8)
    if err != nil {
        t.Log(err)
    }
    t.Log(n)
}
strings.Builder

已存在的内容不可变,但可以拼接更多的内容; 减少了内存分配和内容拷贝的次数; 可将内容重置,可重用值。

strings.Reader

Reader 类型 看到名字就能猜到,这是实现了 io 包中的接口。它实现了

代码语言:javascript
复制
io.Reader(Read 方法)
io.ReaderAt(ReadAt 方法)
io.Seeker(Seek 方法)
io.WriterTo(WriteTo 方法)
io.ByteReader(ReadByte 方法)
io.ByteScanner(ReadByte 和 UnreadByte 方法)
io.RuneReader(ReadRune 方法)
io.RuneScanner(ReadRune 和 UnreadRune 方法)。

Reader 结构如下:

代码语言:javascript
复制
type Reader struct {
    s        string    // Reader 读取的数据来源
    i        int // current reading index(当前读的索引位置)
    prevRune int // index of previous rune; or < 0(前一个读取的 rune 索引位置)
}

可见 Reader 结构没有导出任何字段,而是提供一个实例化方法:

代码语言:javascript
复制
func NewReader(s string) *Reader
代码语言:javascript
复制
sr := strings.NewReader("0123456789A")
    b := make([]byte, 5)
    for {
        n, err := sr.Read(b)
        if err != nil {
            fmt.Println(err)
            break
        }
        fmt.Printf("%d %q\n", n, b[:n])
    }

打印结果是

代码语言:javascript
复制
5 "01234"
5 "56789"
1 "A"
EOF
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 包含关系
  • 字符串转换
  • strings.Builder
  • strings.Reader
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档