blob: 01fbbc0fb9eb59df0e06e5b5479693cd1239efa4 [file] [log] [blame]
Dan Willemsen09eb3b12015-09-16 14:34:17 -07001// 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
5package strconv_test
6
7import (
8 "fmt"
9 "log"
10 "strconv"
11)
12
13func ExampleAppendBool() {
14 b := []byte("bool:")
15 b = strconv.AppendBool(b, true)
16 fmt.Println(string(b))
17
18 // Output:
19 // bool:true
20}
21
22func 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
36func 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
50func 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
59func ExampleAppendQuoteRune() {
60 b := []byte("rune:")
61 b = strconv.AppendQuoteRune(b, '☺')
62 fmt.Println(string(b))
63
64 // Output:
65 // rune:'☺'
66}
67
68func 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
77func 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
86func 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
100func 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
110func 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
119func 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
128func 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
142func 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
156func 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
170func 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
182func 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
191func 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
201func 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
215func 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
237func 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
251func ExampleQuote() {
252 s := strconv.Quote(`"Fran & Freddie's Diner ☺"`)
253 fmt.Println(s)
254
255 // Output:
256 // "\"Fran & Freddie's Diner\t☺\""
257}
258
259func ExampleQuoteRune() {
260 s := strconv.QuoteRune('☺')
261 fmt.Println(s)
262
263 // Output:
264 // '☺'
265}
266
267func ExampleQuoteRuneToASCII() {
268 s := strconv.QuoteRuneToASCII('☺')
269 fmt.Println(s)
270
271 // Output:
272 // '\u263a'
273}
274
275func 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
283func 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
307func 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
323func 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}