[Io] Go에서 Writer로 문자열을 가져 오는 가장 좋은 방법


Answers

아래 코드는 Writer (또는 모든 유형)를 string으로 변환하는 가장 간단한 방법 일 수 있습니다.

package main

import "fmt"
import "io"
import "reflect"

func main(){
    var temp io.Writer
    output := fmt.Sprint(temp)
    fmt.Println(reflect.TypeOf(output))

}

산출:

string
Question

기본 제공 템플릿 시스템을 사용하여 웹 페이지를 반환하는 코드 조각이 있습니다. 결과 마크 업이 쓰여지는 ResponseWriter 를 받아들입니다. 이제는 마크 업 을 문자열로 가져 와서 데이터베이스에 넣기를 원합니다. 나는 ResponseWriter 대신에 정상적인 Writer 를 받아들이고 지금은 작성된 내용을 얻으려고하는 방법을 고려했다. Aha - Pipe 가 필요한 것일 수 있습니다. 그런 다음 bufio 라이브러리에서 ReadString 을 사용하여 문자열을 가져올 수 있습니다. 그러나 파이프에서 나오는 PipeReaderReader 와 호환되지 않습니다 ( ReadString 메서드에 필요함). W00t. 큰 놀라움. 그래서 그냥 PipeReader 사용하여 byte [] s를 읽을 수는 있지만 ReadString 이있을 때 조금 잘못되었다고 느낍니다.

그렇다면 최선의 방법은 무엇일까요? 내가 Pipe 붙어서 바이트를 읽거나 매뉴얼에서 찾지 못한 것이 더 좋을까요?