github.com/remobjects/goldbaselibrary@v0.0.0-20230924164425-d458680a936b/Source/Gold/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 ExampleIsGraphic() { 171 shamrock := strconv.IsGraphic('☘') 172 fmt.Println(shamrock) 173 174 a := strconv.IsGraphic('a') 175 fmt.Println(a) 176 177 bel := strconv.IsGraphic('\007') 178 fmt.Println(bel) 179 180 // Output: 181 // true 182 // true 183 // false 184 } 185 186 func ExampleIsPrint() { 187 c := strconv.IsPrint('\u263a') 188 fmt.Println(c) 189 190 bel := strconv.IsPrint('\007') 191 fmt.Println(bel) 192 193 // Output: 194 // true 195 // false 196 } 197 198 func ExampleItoa() { 199 i := 10 200 s := strconv.Itoa(i) 201 fmt.Printf("%T, %v\n", s, s) 202 203 // Output: 204 // string, 10 205 } 206 207 func ExampleParseBool() { 208 v := "true" 209 if s, err := strconv.ParseBool(v); err == nil { 210 fmt.Printf("%T, %v\n", s, s) 211 } 212 213 // Output: 214 // bool, true 215 } 216 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) 221 } 222 if s, err := strconv.ParseFloat(v, 64); err == nil { 223 fmt.Printf("%T, %v\n", s, s) 224 } 225 if s, err := strconv.ParseFloat("NaN", 32); err == nil { 226 fmt.Printf("%T, %v\n", s, s) 227 } 228 // ParseFloat is case insensitive 229 if s, err := strconv.ParseFloat("nan", 32); err == nil { 230 fmt.Printf("%T, %v\n", s, s) 231 } 232 if s, err := strconv.ParseFloat("inf", 32); err == nil { 233 fmt.Printf("%T, %v\n", s, s) 234 } 235 if s, err := strconv.ParseFloat("+Inf", 32); err == nil { 236 fmt.Printf("%T, %v\n", s, s) 237 } 238 if s, err := strconv.ParseFloat("-Inf", 32); err == nil { 239 fmt.Printf("%T, %v\n", s, s) 240 } 241 if s, err := strconv.ParseFloat("-0", 32); err == nil { 242 fmt.Printf("%T, %v\n", s, s) 243 } 244 if s, err := strconv.ParseFloat("+0", 32); err == nil { 245 fmt.Printf("%T, %v\n", s, s) 246 } 247 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 258 } 259 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) 264 } 265 if s, err := strconv.ParseInt(v32, 16, 32); err == nil { 266 fmt.Printf("%T, %v\n", s, s) 267 } 268 269 v64 := "-3546343826724305832" 270 if s, err := strconv.ParseInt(v64, 10, 64); err == nil { 271 fmt.Printf("%T, %v\n", s, s) 272 } 273 if s, err := strconv.ParseInt(v64, 16, 64); err == nil { 274 fmt.Printf("%T, %v\n", s, s) 275 } 276 277 // Output: 278 // int64, -354634382 279 // int64, -3546343826724305832 280 } 281 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) 286 } 287 if s, err := strconv.ParseUint(v, 10, 64); err == nil { 288 fmt.Printf("%T, %v\n", s, s) 289 } 290 291 // Output: 292 // uint64, 42 293 // uint64, 42 294 } 295 296 func ExampleQuote() { 297 s := strconv.Quote(`"Fran & Freddie's Diner ☺"`) // there is a tab character inside the string literal 298 fmt.Println(s) 299 300 // Output: 301 // "\"Fran & Freddie's Diner\t☺\"" 302 } 303 304 func ExampleQuoteRune() { 305 s := strconv.QuoteRune('☺') 306 fmt.Println(s) 307 308 // Output: 309 // '☺' 310 } 311 312 func ExampleQuoteRuneToASCII() { 313 s := strconv.QuoteRuneToASCII('☺') 314 fmt.Println(s) 315 316 // Output: 317 // '\u263a' 318 } 319 320 func ExampleQuoteRuneToGraphic() { 321 s := strconv.QuoteRuneToGraphic('☺') 322 fmt.Println(s) 323 324 s = strconv.QuoteRuneToGraphic('\u263a') 325 fmt.Println(s) 326 327 s = strconv.QuoteRuneToGraphic('\u000a') 328 fmt.Println(s) 329 330 s = strconv.QuoteRuneToGraphic(' ') // tab character 331 fmt.Println(s) 332 333 // Output: 334 // '☺' 335 // '☺' 336 // '\n' 337 // '\t' 338 } 339 340 func ExampleQuoteToASCII() { 341 s := strconv.QuoteToASCII(`"Fran & Freddie's Diner ☺"`) // there is a tab character inside the string literal 342 fmt.Println(s) 343 344 // Output: 345 // "\"Fran & Freddie's Diner\t\u263a\"" 346 } 347 348 func ExampleQuoteToGraphic() { 349 s := strconv.QuoteToGraphic("☺") 350 fmt.Println(s) 351 352 s = strconv.QuoteToGraphic("This is a \u263a \u000a") // there is a tab character inside the string literal 353 fmt.Println(s) 354 355 s = strconv.QuoteToGraphic(`" This is a ☺ \n "`) 356 fmt.Println(s) 357 358 // Output: 359 // "☺" 360 // "This is a ☺\t\n" 361 // "\" This is a ☺ \\n \"" 362 } 363 364 func ExampleUnquote() { 365 s, err := strconv.Unquote("You can't unquote a string without quotes") 366 fmt.Printf("%q, %v\n", s, err) 367 s, err = strconv.Unquote("\"The string must be either double-quoted\"") 368 fmt.Printf("%q, %v\n", s, err) 369 s, err = strconv.Unquote("`or backquoted.`") 370 fmt.Printf("%q, %v\n", s, err) 371 s, err = strconv.Unquote("'\u263a'") // single character only allowed in single quotes 372 fmt.Printf("%q, %v\n", s, err) 373 s, err = strconv.Unquote("'\u2639\u2639'") 374 fmt.Printf("%q, %v\n", s, err) 375 376 // Output: 377 // "", invalid syntax 378 // "The string must be either double-quoted", <nil> 379 // "or backquoted.", <nil> 380 // "☺", <nil> 381 // "", invalid syntax 382 } 383 384 func ExampleUnquoteChar() { 385 v, mb, t, err := strconv.UnquoteChar(`\"Fran & Freddie's Diner\"`, '"') 386 if err != nil { 387 log.Fatal(err) 388 } 389 390 fmt.Println("value:", string(v)) 391 fmt.Println("multibyte:", mb) 392 fmt.Println("tail:", t) 393 394 // Output: 395 // value: " 396 // multibyte: false 397 // tail: Fran & Freddie's Diner\" 398 } 399 400 func ExampleNumError() { 401 str := "Not a number" 402 if _, err := strconv.ParseFloat(str, 64); err != nil { 403 e := err.(*strconv.NumError) 404 fmt.Println("Func:", e.Func) 405 fmt.Println("Num:", e.Num) 406 fmt.Println("Err:", e.Err) 407 fmt.Println(err) 408 } 409 410 // Output: 411 // Func: ParseFloat 412 // Num: Not a number 413 // Err: invalid syntax 414 // strconv.ParseFloat: parsing "Not a number": invalid syntax 415 }