Go言語_print系関数

print系関数

print系関数はfmtパッケージによって提供されています。


Print()

Print()関数は、オペランドの間に半角スペースを入れることや、文字列の最後に改行を追加することなく、標準出力に出力します。


package main

import "fmt"

func main() {
        fmt.Print("The Go Programming Language.")
        fmt.Print("The", "Go", "Programming", "Language.")
}

上記の実行結果は以下の通りです。


The Go Programming Language.TheGoProgrammingLanguage.

Println()

Println()関数は、オペランドの間に半角スペースを入れ、文字列の最後に改行を追加して、標準出力に出力します。


package main

import "fmt"

func main() {
        fmt.Println("The Go Programming Language.")
        fmt.Println("The", "Go", "Programming", "Language.")
}

上記の実行結果は以下の通りです。


The Go Programming Language.
The Go Programming Language.

Printf()

Printf()関数は、フォーマットを指定することができます。

書式指定子は以下の通りです。


package main

import "fmt"

func numericFormat() {
	// %d 10進数
	d := 7
	fmt.Printf("10進数 = %d\n", d)

	// %b 2進数
	b := 69
	fmt.Printf("2進数  = %08b\n", b)

	// %o 8進数
	o := 509
	fmt.Printf("8進数  = 0%o\n", o)

	// %x 16進数:10以上の数には小文字(a-f)を使用
	x := 1715004
	fmt.Printf("16進数 = 0x%08x\n", x)

	// %X 16進数、10以上の数には大文字(A-F)を使用
	X := 1715004
	fmt.Printf("16進数 = 0x%08X\n", X)

}

func stringFormat() {
	// %s 文字列
	s := "strings"
	fmt.Printf("文字列 = %s\n", s)

	// %c ルーン(対応するUnicodeコードポイントによって表される文字)
	c := '\101'
	fmt.Printf("Unicodeコードポイント = %c\n", c)

	// %1
	q := `"key"="value"`
	fmt.Printf("エスケープ文字列 = %q\n", q)

	// %U ユニコードフォーマット: U+1234; "U+%x"と同じ。
	U := '\101'
	fmt.Printf("ユニコードフォーマット = %U\n", U)
}

func otherFormat() {
	// %t ブーリアン
	b := true
	fmt.Printf("ブーリアン = %t\n", b)

	// %v 任意の値に対する自然なフォーマット
	v := false
	fmt.Printf("任意の値 = %v\n", v)

	// %T 任意の値に対する自然なフォーマット
	T := false
	fmt.Printf("型 = %T\n", T)
}

func main() {
	numericFormat()
	stringFormat()
	otherFormat()
}


Fprint系関数

Fprint(), Fprintf(), Fprintln() は書き込み先(ファイルストリーム)を明示的に指定して出力します。


package main

import (
        "fmt"
        "io"
        "os"
)

func main() {
        fmt.Fprint(os.Stdout, "The Go Programming Language.")
        fmt.Fprintln(os.Stderr, "The Go Programming Language.")
        printStr(os.Stdout, "The Go Programming Language.")
}

func printStr(w io.Writer, str string) {
        fmt.Fprintf(w, "%s\n", str)
}

Sprint系関数

Sprint(), Sprintf(), Sprintln() は、stringと他の型をstring型として一緒に扱うことができます。


package main

import "fmt"

func main() {
        key := "id="
        val := 50
        str := fmt.Sprintf("%s%04d", key, val)
        fmt.Println(str) // id=0050
}

関連ページ