libstdc++: Remove unused alias template in std::optional
[official-gcc.git] / libgo / go / strconv / example_test.go
blob3b4cedbfd82cb2fe777ac1bfba82ded2ec90d0d7
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.
5 package strconv_test
7 import (
8 "fmt"
9 "log"
10 "strconv"
13 func ExampleAppendBool() {
14 b := []byte("bool:")
15 b = strconv.AppendBool(b, true)
16 fmt.Println(string(b))
18 // Output:
19 // bool:true
22 func ExampleAppendFloat() {
23 b32 := []byte("float32:")
24 b32 = strconv.AppendFloat(b32, 3.1415926535, 'E', -1, 32)
25 fmt.Println(string(b32))
27 b64 := []byte("float64:")
28 b64 = strconv.AppendFloat(b64, 3.1415926535, 'E', -1, 64)
29 fmt.Println(string(b64))
31 // Output:
32 // float32:3.1415927E+00
33 // float64:3.1415926535E+00
36 func ExampleAppendInt() {
37 b10 := []byte("int (base 10):")
38 b10 = strconv.AppendInt(b10, -42, 10)
39 fmt.Println(string(b10))
41 b16 := []byte("int (base 16):")
42 b16 = strconv.AppendInt(b16, -42, 16)
43 fmt.Println(string(b16))
45 // Output:
46 // int (base 10):-42
47 // int (base 16):-2a
50 func ExampleAppendQuote() {
51 b := []byte("quote:")
52 b = strconv.AppendQuote(b, `"Fran & Freddie's Diner"`)
53 fmt.Println(string(b))
55 // Output:
56 // quote:"\"Fran & Freddie's Diner\""
59 func ExampleAppendQuoteRune() {
60 b := []byte("rune:")
61 b = strconv.AppendQuoteRune(b, '☺')
62 fmt.Println(string(b))
64 // Output:
65 // rune:'☺'
68 func ExampleAppendQuoteRuneToASCII() {
69 b := []byte("rune (ascii):")
70 b = strconv.AppendQuoteRuneToASCII(b, '☺')
71 fmt.Println(string(b))
73 // Output:
74 // rune (ascii):'\u263a'
77 func ExampleAppendQuoteToASCII() {
78 b := []byte("quote (ascii):")
79 b = strconv.AppendQuoteToASCII(b, `"Fran & Freddie's Diner"`)
80 fmt.Println(string(b))
82 // Output:
83 // quote (ascii):"\"Fran & Freddie's Diner\""
86 func ExampleAppendUint() {
87 b10 := []byte("uint (base 10):")
88 b10 = strconv.AppendUint(b10, 42, 10)
89 fmt.Println(string(b10))
91 b16 := []byte("uint (base 16):")
92 b16 = strconv.AppendUint(b16, 42, 16)
93 fmt.Println(string(b16))
95 // Output:
96 // uint (base 10):42
97 // uint (base 16):2a
100 func ExampleAtoi() {
101 v := "10"
102 if s, err := strconv.Atoi(v); err == nil {
103 fmt.Printf("%T, %v", s, s)
106 // Output:
107 // int, 10
110 func ExampleCanBackquote() {
111 fmt.Println(strconv.CanBackquote("Fran & Freddie's Diner ☺"))
112 fmt.Println(strconv.CanBackquote("`can't backquote this`"))
114 // Output:
115 // true
116 // false
119 func ExampleFormatBool() {
120 v := true
121 s := strconv.FormatBool(v)
122 fmt.Printf("%T, %v\n", s, s)
124 // Output:
125 // string, true
128 func ExampleFormatFloat() {
129 v := 3.1415926535
131 s32 := strconv.FormatFloat(v, 'E', -1, 32)
132 fmt.Printf("%T, %v\n", s32, s32)
134 s64 := strconv.FormatFloat(v, 'E', -1, 64)
135 fmt.Printf("%T, %v\n", s64, s64)
137 // Output:
138 // string, 3.1415927E+00
139 // string, 3.1415926535E+00
142 func ExampleFormatInt() {
143 v := int64(-42)
145 s10 := strconv.FormatInt(v, 10)
146 fmt.Printf("%T, %v\n", s10, s10)
148 s16 := strconv.FormatInt(v, 16)
149 fmt.Printf("%T, %v\n", s16, s16)
151 // Output:
152 // string, -42
153 // string, -2a
156 func ExampleFormatUint() {
157 v := uint64(42)
159 s10 := strconv.FormatUint(v, 10)
160 fmt.Printf("%T, %v\n", s10, s10)
162 s16 := strconv.FormatUint(v, 16)
163 fmt.Printf("%T, %v\n", s16, s16)
165 // Output:
166 // string, 42
167 // string, 2a
170 func ExampleIsGraphic() {
171 shamrock := strconv.IsGraphic('☘')
172 fmt.Println(shamrock)
174 a := strconv.IsGraphic('a')
175 fmt.Println(a)
177 bel := strconv.IsGraphic('\007')
178 fmt.Println(bel)
180 // Output:
181 // true
182 // true
183 // false
186 func ExampleIsPrint() {
187 c := strconv.IsPrint('\u263a')
188 fmt.Println(c)
190 bel := strconv.IsPrint('\007')
191 fmt.Println(bel)
193 // Output:
194 // true
195 // false
198 func ExampleItoa() {
199 i := 10
200 s := strconv.Itoa(i)
201 fmt.Printf("%T, %v\n", s, s)
203 // Output:
204 // string, 10
207 func ExampleParseBool() {
208 v := "true"
209 if s, err := strconv.ParseBool(v); err == nil {
210 fmt.Printf("%T, %v\n", s, s)
213 // Output:
214 // bool, true
217 func ExampleParseFloat() {
218 v := "3.1415926535"
219 if s, err := strconv.ParseFloat(v, 32); err == nil {
220 fmt.Printf("%T, %v\n", s, s)
222 if s, err := strconv.ParseFloat(v, 64); err == nil {
223 fmt.Printf("%T, %v\n", s, s)
225 if s, err := strconv.ParseFloat("NaN", 32); err == nil {
226 fmt.Printf("%T, %v\n", s, s)
228 // ParseFloat is case insensitive
229 if s, err := strconv.ParseFloat("nan", 32); err == nil {
230 fmt.Printf("%T, %v\n", s, s)
232 if s, err := strconv.ParseFloat("inf", 32); err == nil {
233 fmt.Printf("%T, %v\n", s, s)
235 if s, err := strconv.ParseFloat("+Inf", 32); err == nil {
236 fmt.Printf("%T, %v\n", s, s)
238 if s, err := strconv.ParseFloat("-Inf", 32); err == nil {
239 fmt.Printf("%T, %v\n", s, s)
241 if s, err := strconv.ParseFloat("-0", 32); err == nil {
242 fmt.Printf("%T, %v\n", s, s)
244 if s, err := strconv.ParseFloat("+0", 32); err == nil {
245 fmt.Printf("%T, %v\n", s, s)
248 // Output:
249 // float64, 3.1415927410125732
250 // float64, 3.1415926535
251 // float64, NaN
252 // float64, NaN
253 // float64, +Inf
254 // float64, +Inf
255 // float64, -Inf
256 // float64, -0
257 // float64, 0
260 func ExampleParseInt() {
261 v32 := "-354634382"
262 if s, err := strconv.ParseInt(v32, 10, 32); err == nil {
263 fmt.Printf("%T, %v\n", s, s)
265 if s, err := strconv.ParseInt(v32, 16, 32); err == nil {
266 fmt.Printf("%T, %v\n", s, s)
269 v64 := "-3546343826724305832"
270 if s, err := strconv.ParseInt(v64, 10, 64); err == nil {
271 fmt.Printf("%T, %v\n", s, s)
273 if s, err := strconv.ParseInt(v64, 16, 64); err == nil {
274 fmt.Printf("%T, %v\n", s, s)
277 // Output:
278 // int64, -354634382
279 // int64, -3546343826724305832
282 func ExampleParseUint() {
283 v := "42"
284 if s, err := strconv.ParseUint(v, 10, 32); err == nil {
285 fmt.Printf("%T, %v\n", s, s)
287 if s, err := strconv.ParseUint(v, 10, 64); err == nil {
288 fmt.Printf("%T, %v\n", s, s)
291 // Output:
292 // uint64, 42
293 // uint64, 42
296 func ExampleQuote() {
297 // This string literal contains a tab character.
298 s := strconv.Quote(`"Fran & Freddie's Diner ☺"`)
299 fmt.Println(s)
301 // Output:
302 // "\"Fran & Freddie's Diner\t☺\""
305 func ExampleQuoteRune() {
306 s := strconv.QuoteRune('☺')
307 fmt.Println(s)
309 // Output:
310 // '☺'
313 func ExampleQuoteRuneToASCII() {
314 s := strconv.QuoteRuneToASCII('☺')
315 fmt.Println(s)
317 // Output:
318 // '\u263a'
321 func ExampleQuoteRuneToGraphic() {
322 s := strconv.QuoteRuneToGraphic('☺')
323 fmt.Println(s)
325 s = strconv.QuoteRuneToGraphic('\u263a')
326 fmt.Println(s)
328 s = strconv.QuoteRuneToGraphic('\u000a')
329 fmt.Println(s)
331 s = strconv.QuoteRuneToGraphic(' ') // tab character
332 fmt.Println(s)
334 // Output:
335 // '☺'
336 // '☺'
337 // '\n'
338 // '\t'
341 func ExampleQuoteToASCII() {
342 // This string literal contains a tab character.
343 s := strconv.QuoteToASCII(`"Fran & Freddie's Diner ☺"`)
344 fmt.Println(s)
346 // Output:
347 // "\"Fran & Freddie's Diner\t\u263a\""
350 func ExampleQuoteToGraphic() {
351 s := strconv.QuoteToGraphic("☺")
352 fmt.Println(s)
354 // This string literal contains a tab character.
355 s = strconv.QuoteToGraphic("This is a \u263a \u000a")
356 fmt.Println(s)
358 s = strconv.QuoteToGraphic(`" This is a ☺ \n "`)
359 fmt.Println(s)
361 // Output:
362 // "☺"
363 // "This is a ☺\t\n"
364 // "\" This is a ☺ \\n \""
367 func ExampleUnquote() {
368 s, err := strconv.Unquote("You can't unquote a string without quotes")
369 fmt.Printf("%q, %v\n", s, err)
370 s, err = strconv.Unquote("\"The string must be either double-quoted\"")
371 fmt.Printf("%q, %v\n", s, err)
372 s, err = strconv.Unquote("`or backquoted.`")
373 fmt.Printf("%q, %v\n", s, err)
374 s, err = strconv.Unquote("'\u263a'") // single character only allowed in single quotes
375 fmt.Printf("%q, %v\n", s, err)
376 s, err = strconv.Unquote("'\u2639\u2639'")
377 fmt.Printf("%q, %v\n", s, err)
379 // Output:
380 // "", invalid syntax
381 // "The string must be either double-quoted", <nil>
382 // "or backquoted.", <nil>
383 // "☺", <nil>
384 // "", invalid syntax
387 func ExampleUnquoteChar() {
388 v, mb, t, err := strconv.UnquoteChar(`\"Fran & Freddie's Diner\"`, '"')
389 if err != nil {
390 log.Fatal(err)
393 fmt.Println("value:", string(v))
394 fmt.Println("multibyte:", mb)
395 fmt.Println("tail:", t)
397 // Output:
398 // value: "
399 // multibyte: false
400 // tail: Fran & Freddie's Diner\"
403 func ExampleNumError() {
404 str := "Not a number"
405 if _, err := strconv.ParseFloat(str, 64); err != nil {
406 e := err.(*strconv.NumError)
407 fmt.Println("Func:", e.Func)
408 fmt.Println("Num:", e.Num)
409 fmt.Println("Err:", e.Err)
410 fmt.Println(err)
413 // Output:
414 // Func: ParseFloat
415 // Num: Not a number
416 // Err: invalid syntax
417 // strconv.ParseFloat: parsing "Not a number": invalid syntax