1
0
mirror of https://github.com/golang/go synced 2024-11-15 01:20:28 -07:00
go/src/strconv/example_test.go

339 lines
6.5 KiB
Go
Raw Normal View History

// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package strconv_test
import (
"fmt"
"log"
"strconv"
)
func ExampleAppendBool() {
b := []byte("bool:")
b = strconv.AppendBool(b, true)
fmt.Println(string(b))
// Output:
// bool:true
}
func ExampleAppendFloat() {
b32 := []byte("float32:")
b32 = strconv.AppendFloat(b32, 3.1415926535, 'E', -1, 32)
fmt.Println(string(b32))
b64 := []byte("float64:")
b64 = strconv.AppendFloat(b64, 3.1415926535, 'E', -1, 64)
fmt.Println(string(b64))
// Output:
// float32:3.1415927E+00
// float64:3.1415926535E+00
}
func ExampleAppendInt() {
b10 := []byte("int (base 10):")
b10 = strconv.AppendInt(b10, -42, 10)
fmt.Println(string(b10))
b16 := []byte("int (base 16):")
b16 = strconv.AppendInt(b16, -42, 16)
fmt.Println(string(b16))
// Output:
// int (base 10):-42
// int (base 16):-2a
}
func ExampleAppendQuote() {
b := []byte("quote:")
b = strconv.AppendQuote(b, `"Fran & Freddie's Diner"`)
fmt.Println(string(b))
// Output:
// quote:"\"Fran & Freddie's Diner\""
}
func ExampleAppendQuoteRune() {
b := []byte("rune:")
b = strconv.AppendQuoteRune(b, '☺')
fmt.Println(string(b))
// Output:
// rune:'☺'
}
func ExampleAppendQuoteRuneToASCII() {
b := []byte("rune (ascii):")
b = strconv.AppendQuoteRuneToASCII(b, '☺')
fmt.Println(string(b))
// Output:
// rune (ascii):'\u263a'
}
func ExampleAppendQuoteToASCII() {
b := []byte("quote (ascii):")
b = strconv.AppendQuoteToASCII(b, `"Fran & Freddie's Diner"`)
fmt.Println(string(b))
// Output:
// quote (ascii):"\"Fran & Freddie's Diner\""
}
func ExampleAppendUint() {
b10 := []byte("uint (base 10):")
b10 = strconv.AppendUint(b10, 42, 10)
fmt.Println(string(b10))
b16 := []byte("uint (base 16):")
b16 = strconv.AppendUint(b16, 42, 16)
fmt.Println(string(b16))
// Output:
// uint (base 10):42
// uint (base 16):2a
}
func ExampleAtoi() {
v := "10"
if s, err := strconv.Atoi(v); err == nil {
fmt.Printf("%T, %v", s, s)
}
// Output:
// int, 10
}
func ExampleCanBackquote() {
fmt.Println(strconv.CanBackquote("Fran & Freddie's Diner ☺"))
fmt.Println(strconv.CanBackquote("`can't backquote this`"))
// Output:
// true
// false
}
func ExampleFormatBool() {
v := true
s := strconv.FormatBool(v)
fmt.Printf("%T, %v\n", s, s)
// Output:
// string, true
}
func ExampleFormatFloat() {
v := 3.1415926535
s32 := strconv.FormatFloat(v, 'E', -1, 32)
fmt.Printf("%T, %v\n", s32, s32)
s64 := strconv.FormatFloat(v, 'E', -1, 64)
fmt.Printf("%T, %v\n", s64, s64)
// Output:
// string, 3.1415927E+00
// string, 3.1415926535E+00
}
func ExampleFormatInt() {
v := int64(-42)
s10 := strconv.FormatInt(v, 10)
fmt.Printf("%T, %v\n", s10, s10)
s16 := strconv.FormatInt(v, 16)
fmt.Printf("%T, %v\n", s16, s16)
// Output:
// string, -42
// string, -2a
}
func ExampleFormatUint() {
v := uint64(42)
s10 := strconv.FormatUint(v, 10)
fmt.Printf("%T, %v\n", s10, s10)
s16 := strconv.FormatUint(v, 16)
fmt.Printf("%T, %v\n", s16, s16)
// Output:
// string, 42
// string, 2a
}
func ExampleIsPrint() {
c := strconv.IsPrint('\u263a')
fmt.Println(c)
bel := strconv.IsPrint('\007')
fmt.Println(bel)
// Output:
// true
// false
}
func ExampleItoa() {
i := 10
s := strconv.Itoa(i)
fmt.Printf("%T, %v\n", s, s)
// Output:
// string, 10
}
func ExampleParseBool() {
v := "true"
if s, err := strconv.ParseBool(v); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
// Output:
// bool, true
}
func ExampleParseFloat() {
v := "3.1415926535"
if s, err := strconv.ParseFloat(v, 32); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat(v, 64); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
// Output:
// float64, 3.1415927410125732
// float64, 3.1415926535
}
func ExampleParseInt() {
v32 := "-354634382"
if s, err := strconv.ParseInt(v32, 10, 32); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseInt(v32, 16, 32); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
v64 := "-3546343826724305832"
if s, err := strconv.ParseInt(v64, 10, 64); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseInt(v64, 16, 64); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
// Output:
// int64, -354634382
// int64, -3546343826724305832
}
func ExampleParseUint() {
v := "42"
if s, err := strconv.ParseUint(v, 10, 32); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseUint(v, 10, 64); err == nil {
fmt.Printf("%T, %v\n", s, s)
}
// Output:
// uint64, 42
// uint64, 42
}
func ExampleQuote() {
s := strconv.Quote(`"Fran & Freddie's Diner ☺"`)
fmt.Println(s)
// Output:
// "\"Fran & Freddie's Diner\t☺\""
}
func ExampleQuoteRune() {
s := strconv.QuoteRune('☺')
fmt.Println(s)
// Output:
// '☺'
}
func ExampleQuoteRuneToASCII() {
s := strconv.QuoteRuneToASCII('☺')
fmt.Println(s)
// Output:
// '\u263a'
}
func ExampleQuoteToASCII() {
s := strconv.QuoteToASCII(`"Fran & Freddie's Diner ☺"`)
fmt.Println(s)
// Output:
// "\"Fran & Freddie's Diner\t\u263a\""
}
func ExampleUnquote() {
test := func(s string) {
t, err := strconv.Unquote(s)
if err != nil {
fmt.Printf("Unquote(%#v): %v\n", s, err)
} else {
fmt.Printf("Unquote(%#v) = %v\n", s, t)
}
}
s := `\"Fran & Freddie's Diner\t\u263a\"\"`
// If the string doesn't have quotes, it can't be unquoted.
test(s) // invalid syntax
test("`" + s + "`")
test(`"` + s + `"`)
test(`'\u263a'`)
// Output:
// Unquote("\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\""): invalid syntax
// Unquote("`\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\"`") = \"Fran & Freddie's Diner\t\u263a\"\"
// Unquote("\"\\\"Fran & Freddie's Diner\\t\\u263a\\\"\\\"\"") = "Fran & Freddie's Diner ☺""
// Unquote("'\\u263a'") = ☺
}
func ExampleUnquoteChar() {
v, mb, t, err := strconv.UnquoteChar(`\"Fran & Freddie's Diner\"`, '"')
if err != nil {
log.Fatal(err)
}
fmt.Println("value:", string(v))
fmt.Println("multibyte:", mb)
fmt.Println("tail:", t)
// Output:
// value: "
// multibyte: false
// tail: Fran & Freddie's Diner\"
}
func ExampleNumError() {
str := "Not a number"
if _, err := strconv.ParseFloat(str, 64); err != nil {
e := err.(*strconv.NumError)
fmt.Println("Func:", e.Func)
fmt.Println("Num:", e.Num)
fmt.Println("Err:", e.Err)
fmt.Println(err)
}
// Output:
// Func: ParseFloat
// Num: Not a number
// Err: invalid syntax
// strconv.ParseFloat: parsing "Not a number": invalid syntax
}