Golang Basic 3 - Basic I-O functions

Golang Basic 3 - Basic I/O functions

About fmt package

  • Package fmt implements formatted I/O with functions analogous to C's printf and scanf. The format 'verbs' are derived from C's but are simpler.

Import package

import "fmt"

Functions in fmt

  • You can get more information from https://golang.org/pkg/fmt/#pkg-index.
    golang
    func Errorf(format string, a ...interface{}) error
    func Fprint(w io.Writer, a ...interface{}) (n int, err error)
    func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
    func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
    func Fscan(r io.Reader, a ...interface{}) (n int, err error)
    func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
    func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
    func Print(a ...interface{}) (n int, err error)
    func Printf(format string, a ...interface{}) (n int, err error)
    func Println(a ...interface{}) (n int, err error)
    func Scan(a ...interface{}) (n int, err error)
    func Scanf(format string, a ...interface{}) (n int, err error)
    func Scanln(a ...interface{}) (n int, err error)
    func Sprint(a ...interface{}) string
    func Sprintf(format string, a ...interface{}) string
    func Sprintln(a ...interface{}) string
    func Sscan(str string, a ...interface{}) (n int, err error)
    func Sscanf(str string, format string, a ...interface{}) (n int, err error)
    func Sscanln(str string, a ...interface{}) (n int, err error)

Format string

General

Format Sense
%v The value in a default format when printing structs, the plus flag (% v) adds field names.
%#v A Go-syntax representation of the value.
%T A Go-syntax representation of the type of the value.
%% A literal percent sign; consumes no value.

Boolean

Format Sense
%t The word true or false.

Integer

Format Sense
%b base 2
%c the character represented by the corresponding Unicode code point
%d base 10
%o base 8
%O base 8 with 0o prefi
%q a single-quoted character literal safely escaped with Go syntax
%x base 16, with lower-case letters for a-f
%X base 16, with upper-case letters for A-F
%U Unicode format: U 1234; same as "U %04X"

Floating-point and complex constituents

Format Sense
%b decimalless scientific notation with exponent a power of two, in the manner of strconv.FormatFloat with the 'b' format
%e scientific notation
%E scientific notation
%f decimal point but no exponent
%F synonym for %f
%g %e for large exponents, %f otherwise
%G %E for large exponents, %F otherwise
%x hexadecimal notation (with decimal power of two exponent)
%X upper-case hexadecimal notation

String and slice of bytes

Format Sense
%s the uninterpreted bytes of the string or slice
%q a double-quoted string safely escaped with Go syntax
%x base 16, lower-case, two characters per byte
%X base 16, upper-case, two characters per byte

Slice

Format Sense
%p address of 0th element in base 16 notation, with leading 0x

Pointer

|Format|Sense|
|:-:|:-:|
|%p|base 16 notation, with leading 0x|
- The %b, %d, %o, %x and %X verbs also work with pointers, formatting the value exactly as if it were an integer.

Basic input function

Some functions could get input from console.

func Scan(a ...interface{}) (n int, err error)
func Scanln(a ...interface{}) (n int, err error)
  • If you need set string format, you can use Scanf().
  • Scanln() will add a end of line symbol at the end of the line.

Basic output function

Some functions could print on the console.

func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)
  • If you need set string format, you can use Printf().
  • Println() will add a end of line symbol at the end of the line.

Sample

usr@host:go/ # cat l3s1.go
package main
import (
    "fmt"
)

func main(){
    var var1 int
    var var2 int

    fmt.Print("Please input two values (split with blank) : ")
    fmt.Scanln(&var1, &var2)
    fmt.Printf("%d   %d = %d\n", var1, var2, var1   var2)
}
usr@host:go/ # go run l3s1.go
Please input two values (split with blank) : 3 6
3   6 = 9

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据