golang语言渐入佳境[26]-string转其他类型函数

string转其他类型函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main

import (
"strconv"
"fmt"
)

/*
1、func Atoi(s string) (int, error)
Atoi 返回 ParseInt(s, 10, 0) 转换为 int 类型的结果。【alphabet:字母】

2、func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt 解释给定基础(2到36)中的字符串 s 并返回相应的值 i。如果 base == 0,则基数由字符串的前缀隐含:base 16代表“0x”,base 8代表“0”,否则以10为底数。

3、func ParseUint(s string, base int, bitSize int) (uint64, error)
ParseUint 就像 ParseInt,但是对于无符号数字。

4、func ParseFloat(s string, bitSize int) (float64, error)
ParseFloat 将字符串 s 转换为浮点数,精度由 bitSize:32指定,float32为64; float64为64。当 bitSize = 32时,结果仍然具有 float64 类型,但可以在不更改其值的情况下将其转换为 float32。

5、func ParseBool(str string) (bool, error)
ParseBool 返回字符串表示的布尔值。
它接受1,t,T,TRUE,true,True,
0,f,F,FALSE,false,False。
任何其他值都会返回错误。
*/
func main() {
TestAtoi()

TestParseInt()

TestParseUint()

TestParseFloat()

TestParseBool()
}

func TestAtoi() {
a, _ := strconv.Atoi("100")
fmt.Printf("%T , %v \n", a, a+2)
fmt.Println("---------------")
}

func TestParseInt() {
num, _ := strconv.ParseInt("-4e00", 16, 64)
fmt.Printf("%T , %v \n", num, num)

num, _ = strconv.ParseInt("01100001", 2, 64)
fmt.Printf("%T , %v\n", num, num)

num, _ = strconv.ParseInt("-01100001", 10, 64)
fmt.Printf("%T , %v\n", num, num)

num, _ = strconv.ParseInt("4e00", 10, 64)
fmt.Printf("%T , %v\n", num, num)
fmt.Println("---------------")
}

func TestParseUint() {
num, _ := strconv.ParseUint("4e00", 16, 64)
fmt.Printf("%T , %v \n", num, num)

num, _ = strconv.ParseUint("01100001", 2, 64)
fmt.Printf("%T , %v\n", num, num)

num, _ = strconv.ParseUint("-1100001", 10, 64)
fmt.Printf("%T , %v\n", num, num)

num, _ = strconv.ParseUint("4e00", 10, 64)
fmt.Printf("%T , %v\n", num, num)
fmt.Println("---------------")
}

func TestParseFloat() {
pi := "3.1415926"
num , _ := strconv.ParseFloat(pi , 64)
fmt.Printf("%T , %v\n", num, num*2)
fmt.Println("---------------")
}

func TestParseBool() {
//1, t, T, TRUE, true, True,
// 0, f, F, FALSE, false, False.
flag , _:=strconv.ParseBool("steven")
fmt.Printf("%T , %v\n", flag, flag)
fmt.Println("---------------")
}