Closed2
Goのfmt.Sprintfとfmt.Fprintfの違いをまとめる
[到達していたい状態]
- fmt.Sprintfとfmt.Fprintfの違いを説明できる
- それらを持ちいたコードを書ける
[やること]
- fmt.Sprintfとfmt.Fprintfについて調べる
prefixがSのPrint関数
prefixがSのPrint関数は、出力ではなくフォーマットした結果を文字列として返す。別の変数にフォーマットした文字列の結果を代入する際に利用します。
package main
import (
"fmt"
)
func main() {
w := "world"
hello := fmt.Sprintf("hello %s", w)
fmt.Println(hello)
}
prefixがFのPrint関数
prefixがFのPrint関数は、書き込み先を明示的に指定できます。
以下の例では書き込み先にファイルを指定しています。Fprintfの第一引数はio.Writerインターフェース型の値。fは*os.File型の値。*os.File型はWrite関数を実装している。そのため、インターフェースを実装している。
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.Create("foo.txt")
if err != nil {
fmt.Println(err)
return
}
// このように書いてもファイルに書き込める
// data := "Hello World"
// f.Write([]byte(data))
fmt.Fprintf(f, "Hello world")
}
type Writer interface {
Write(p []byte) (n int, err error)
}
参考記事
このスクラップは2023/06/10にクローズされました