strings.NewReader 中的实现是这样的: func NewReader(s string) *Reader { return &Reader{s, 0, -1} } 但是我把它单独拿出来,为什么不能实现呢?

package main

import (

"fmt"
"strings"

)

func main() {

var r *strings.Reader

// func NewReader(s string) *Reader { return &Reader{s, 0, -1} }
//r = strings.NewReader("abc")
r = &strings.Reader{"abc", 0, -1}

fmt.Printf("%d\n", r.Len())

}

为什么 这样写就不能运行?

共 1 个回复


jimmykuu

type Reader struct {
    s        string
    i        int // current reading index
    prevRune int // index of previous rune; or < 0
}

s, i, prevRune首字母都是小写,私有变量,建议去看下Go变量定义那块。

# 0