>백엔드 개발 >Golang >Go에서 한 줄을 문자열로 효율적으로 읽을 수 있는 방법은 무엇입니까?

Go에서 한 줄을 문자열로 효율적으로 읽을 수 있는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-21 11:39:11685검색

How Can I Efficiently Read a Line into a String in Go?

Go에서 효율적으로 행을 문자열로 읽기

Go 표준 라이브러리는 입력을 읽는 저수준 함수를 제공하고 대신 바이트 배열을 반환합니다. 문자열. 사용 편의성을 위해 readline 함수에서 직접 문자열을 얻는 대체 접근 방식을 살펴봅니다.

사용자 정의 Readln 함수

readline 작업을 단순화하기 위해 사용자 정의 제공된 문자에서 한 줄(개행 문자 제외)을 읽는 Readln 함수 bufio.Reader:

func Readln(r *bufio.Reader) (string, error) {
  var (
    isPrefix bool = true
    err error = nil
    line, ln []byte
  )
  for isPrefix && err == nil {
    line, isPrefix, err = r.ReadLine()
    ln = append(ln, line...)
  }
  return string(ln), err
}

사용 예

Readln 함수를 사용하여 파일에서 줄을 읽고 stdout으로 인쇄할 수 있습니다.

f, err := os.Open(fi)
if err != nil {
    fmt.Println("error opening file= ", err)
    os.Exit(1)
}
r := bufio.NewReader(f)
s, e := Readln(r)
for e == nil {
    fmt.Println(s)
    s, e = Readln(r)
}

이 접근 방식을 사용하면 바이트 배열을 문자열로 수동으로 변환할 필요가 없으므로 가져오는 프로세스가 간소화됩니다. Go의 readline 함수에서 가져온 문자열입니다.

위 내용은 Go에서 한 줄을 문자열로 효율적으로 읽을 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.