github.com/StingNevermore/go@v0.0.0-20180120041312-3810f5bfed72/src/strconv/example_test.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package strconv_test
     6  
     7  import (
     8  	"fmt"
     9  	"log"
    10  	"strconv"
    11  )
    12  
    13  func ExampleAppendBool() {
    14  	b := []byte("bool:")
    15  	b = strconv.AppendBool(b, true)
    16  	fmt.Println(string(b))
    17  
    18  	// Output:
    19  	// bool:true
    20  }
    21  
    22  func ExampleAppendFloat() {
    23  	b32 := []byte("float32:")
    24  	b32 = strconv.AppendFloat(b32, 3.1415926535, 'E', -1, 32)
    25  	fmt.Println(string(b32))
    26  
    27  	b64 := []byte("float64:")
    28  	b64 = strconv.AppendFloat(b64, 3.1415926535, 'E', -1, 64)
    29  	fmt.Println(string(b64))
    30  
    31  	// Output:
    32  	// float32:3.1415927E+00
    33  	// float64:3.1415926535E+00
    34  }
    35  
    36  func ExampleAppendInt() {
    37  	b10 := []byte("int (base 10):")
    38  	b10 = strconv.AppendInt(b10, -42, 10)
    39  	fmt.Println(string(b10))
    40  
    41  	b16 := []byte("int (base 16):")
    42  	b16 = strconv.AppendInt(b16, -42, 16)
    43  	fmt.Println(string(b16))
    44  
    45  	// Output:
    46  	// int (base 10):-42
    47  	// int (base 16):-2a
    48  }
    49  
    50  func ExampleAppendQuote() {
    51  	b := []byte("quote:")
    52  	b = strconv.AppendQuote(b, `"Fran & Freddie's Diner"`)
    53  	fmt.Println(string(b))
    54  
    55  	// Output:
    56  	// quote:"\"Fran & Freddie's Diner\""
    57  }
    58  
    59  func ExampleAppendQuoteRune() {
    60  	b := []byte("rune:")
    61  	b = strconv.AppendQuoteRune(b, '☺')
    62  	fmt.Println(string(b))
    63  
    64  	// Output:
    65  	// rune:'☺'
    66  }
    67  
    68  func ExampleAppendQuoteRuneToASCII() {
    69  	b := []byte("rune (ascii):")
    70  	b = strconv.AppendQuoteRuneToASCII(b, '☺')
    71  	fmt.Println(string(b))
    72  
    73  	// Output:
    74  	// rune (ascii):'\u263a'
    75  }
    76  
    77  func ExampleAppendQuoteToASCII() {
    78  	b := []byte("quote (ascii):")
    79  	b = strconv.AppendQuoteToASCII(b, `"Fran & Freddie's Diner"`)
    80  	fmt.Println(string(b))
    81  
    82  	// Output:
    83  	// quote (ascii):"\"Fran & Freddie's Diner\""
    84  }
    85  
    86  func ExampleAppendUint() {
    87  	b10 := []byte("uint (base 10):")
    88  	b10 = strconv.AppendUint(b10, 42, 10)
    89  	fmt.Println(string(b10))
    90  
    91  	b16 := []byte("uint (base 16):")
    92  	b16 = strconv.AppendUint(b16, 42, 16)
    93  	fmt.Println(string(b16))
    94  
    95  	// Output:
    96  	// uint (base 10):42
    97  	// uint (base 16):2a
    98  }
    99  
   100  func ExampleAtoi() {
   101  	v := "10"
   102  	if s, err := strconv.Atoi(v); err == nil {
   103  		fmt.Printf("%T, %v", s, s)
   104  	}
   105  
   106  	// Output:
   107  	// int, 10
   108  }
   109  
   110  func ExampleCanBackquote() {
   111  	fmt.Println(strconv.CanBackquote("Fran & Freddie's Diner ☺"))
   112  	fmt.Println(strconv.CanBackquote("`can't backquote this`"))
   113  
   114  	// Output:
   115  	// true
   116  	// false
   117  }
   118  
   119  func ExampleFormatBool() {
   120  	v := true
   121  	s := strconv.FormatBool(v)
   122  	fmt.Printf("%T, %v\n", s, s)
   123  
   124  	// Output:
   125  	// string, true
   126  }
   127  
   128  func ExampleFormatFloat() {
   129  	v := 3.1415926535
   130  
   131  	s32 := strconv.FormatFloat(v, 'E', -1, 32)
   132  	fmt.Printf("%T, %v\n", s32, s32)
   133  
   134  	s64 := strconv.FormatFloat(v, 'E', -1, 64)
   135  	fmt.Printf("%T, %v\n", s64, s64)
   136  
   137  	// Output:
   138  	// string, 3.1415927E+00
   139  	// string, 3.1415926535E+00
   140  }
   141  
   142  func ExampleFormatInt() {
   143  	v := int64(-42)
   144  
   145  	s10 := strconv.FormatInt(v, 10)
   146  	fmt.Printf("%T, %v\n", s10, s10)
   147  
   148  	s16 := strconv.FormatInt(v, 16)
   149  	fmt.Printf("%T, %v\n", s16, s16)
   150  
   151  	// Output:
   152  	// string, -42
   153  	// string, -2a
   154  }
   155  
   156  func ExampleFormatUint() {
   157  	v := uint64(42)
   158  
   159  	s10 := strconv.FormatUint(v, 10)
   160  	fmt.Printf("%T, %v\n", s10, s10)
   161  
   162  	s16 := strconv.FormatUint(v, 16)
   163  	fmt.Printf("%T, %v\n", s16, s16)
   164  
   165  	// Output:
   166  	// string, 42
   167  	// string, 2a
   168  }
   169  
   170  func ExampleIsPrint() {
   171  	c := strconv.IsPrint('\u263a')
   172  	fmt.Println(c)
   173  
   174  	bel := strconv.IsPrint('\007')
   175  	fmt.Println(bel)
   176  
   177  	// Output:
   178  	// true
   179  	// false
   180  }
   181  
   182  func ExampleItoa() {
   183  	i := 10
   184  	s := strconv.Itoa(i)
   185  	fmt.Printf("%T, %v\n", s, s)
   186  
   187  	// Output:
   188  	// string, 10
   189  }
   190  
   191  func ExampleParseBool() {
   192  	v := "true"
   193  	if s, err := strconv.ParseBool(v); err == nil {
   194  		fmt.Printf("%T, %v\n", s, s)
   195  	}
   196  
   197  	// Output:
   198  	// bool, true
   199  }
   200  
   201  func ExampleParseFloat() {
   202  	v := "3.1415926535"
   203  	if s, err := strconv.ParseFloat(v, 32); err == nil {
   204  		fmt.Printf("%T, %v\n", s, s)
   205  	}
   206  	if s, err := strconv.ParseFloat(v, 64); err == nil {
   207  		fmt.Printf("%T, %v\n", s, s)
   208  	}
   209  
   210  	// Output:
   211  	// float64, 3.1415927410125732
   212  	// float64, 3.1415926535
   213  }
   214  
   215  func ExampleParseInt() {
   216  	v32 := "-354634382"
   217  	if s, err := strconv.ParseInt(v32, 10, 32); err == nil {
   218  		fmt.Printf("%T, %v\n", s, s)
   219  	}
   220  	if s, err := strconv.ParseInt(v32, 16, 32); err == nil {
   221  		fmt.Printf("%T, %v\n", s, s)
   222  	}
   223  
   224  	v64 := "-3546343826724305832"
   225  	if s, err := strconv.ParseInt(v64, 10, 64); err == nil {
   226  		fmt.Printf("%T, %v\n", s, s)
   227  	}
   228  	if s, err := strconv.ParseInt(v64, 16, 64); err == nil {
   229  		fmt.Printf("%T, %v\n", s, s)
   230  	}
   231  
   232  	// Output:
   233  	// int64, -354634382
   234  	// int64, -3546343826724305832
   235  }
   236  
   237  func ExampleParseUint() {
   238  	v := "42"
   239  	if s, err := strconv.ParseUint(v, 10, 32); err == nil {
   240  		fmt.Printf("%T, %v\n", s, s)
   241  	}
   242  	if s, err := strconv.ParseUint(v, 10, 64); err == nil {
   243  		fmt.Printf("%T, %v\n", s, s)
   244  	}
   245  
   246  	// Output:
   247  	// uint64, 42
   248  	// uint64, 42
   249  }
   250  
   251  func ExampleQuote() {
   252  	s := strconv.Quote(`"Fran & Freddie's Diner	☺"`)
   253  	fmt.Println(s)
   254  
   255  	// Output:
   256  	// "\"Fran & Freddie's Diner\t☺\""
   257  }
   258  
   259  func ExampleQuoteRune() {
   260  	s := strconv.QuoteRune('☺')
   261  	fmt.Println(s)
   262  
   263  	// Output:
   264  	// '☺'
   265  }
   266  
   267  func ExampleQuoteRuneToASCII() {
   268  	s := strconv.QuoteRuneToASCII('☺')
   269  	fmt.Println(s)
   270  
   271  	// Output:
   272  	// '\u263a'
   273  }
   274  
   275  func ExampleQuoteToASCII() {
   276  	s := strconv.QuoteToASCII(`"Fran & Freddie's Diner	☺"`)
   277  	fmt.Println(s)
   278  
   279  	// Output:
   280  	// "\"Fran & Freddie's Diner\t\u263a\""
   281  }
   282  
   283  func ExampleUnquote() {
   284  	test := func(s string) {
   285  		t, err := strconv.Unquote(s)
   286  		if err != nil {
   287  			fmt.Printf("Unquote(%#v): %v\n", s, err)
   288  		} else {
   289  			fmt.Printf("Unquote(%#v) = %v\n", s, t)
   290  		}
   291  	}
   292  
   293  	s := `\"Fran & Freddie's Diner\t\u263a\"\"`
   294  	// If the string doesn't have quotes, it can't be unquoted.
   295  	test(s) // invalid syntax
   296  	test("`" + s + "`")
   297  	test(`"` + s + `"`)
   298  	test(`'\u263a'`)
   299  
   300  	// Output:
   301  	// Unquote("\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\""): invalid syntax
   302  	// Unquote("`\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\"`") = \"Fran & Freddie's Diner\t\u263a\"\"
   303  	// Unquote("\"\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\"\"") = "Fran & Freddie's Diner	☺""
   304  	// Unquote("'\\u263a'") = ☺
   305  }
   306  
   307  func ExampleUnquoteChar() {
   308  	v, mb, t, err := strconv.UnquoteChar(`\"Fran & Freddie's Diner\"`, '"')
   309  	if err != nil {
   310  		log.Fatal(err)
   311  	}
   312  
   313  	fmt.Println("value:", string(v))
   314  	fmt.Println("multibyte:", mb)
   315  	fmt.Println("tail:", t)
   316  
   317  	// Output:
   318  	// value: "
   319  	// multibyte: false
   320  	// tail: Fran & Freddie's Diner\"
   321  }
   322  
   323  func ExampleNumError() {
   324  	str := "Not a number"
   325  	if _, err := strconv.ParseFloat(str, 64); err != nil {
   326  		e := err.(*strconv.NumError)
   327  		fmt.Println("Func:", e.Func)
   328  		fmt.Println("Num:", e.Num)
   329  		fmt.Println("Err:", e.Err)
   330  		fmt.Println(err)
   331  	}
   332  
   333  	// Output:
   334  	// Func: ParseFloat
   335  	// Num: Not a number
   336  	// Err: invalid syntax
   337  	// strconv.ParseFloat: parsing "Not a number": invalid syntax
   338  }