一、基本数据类型之整数浮点数
package main
import "fmt"
func main() {
var a = 10
var b int16 = 20
fmt.Println(a, b)
b = int16(a)
fmt.Println(b)
c := 3.14
fmt.Println(c)
var d float32 = 12.6
fmt.Println(d)
fmt.Println(c + float64(d))
}
二、string字符串类型的使用
1 package main
2
3 import (
4 "fmt"
5 "strings"
6 )
7
8 func main() {
9 var s1 = "hello"
10 fmt.Println(s1)
11
12 s2 := " world"
13 fmt.Println(s2)
14
15 var s3 = s1 + s2 //字符串拼接
16 fmt.Println(s3)
17
18 var s4 = "ABCD
efgh"//遇到特殊字符特殊处理
19 fmt.Println(s4)
20
21 var s5 = `1234
5678` //反引号会将括号内所有字符打印出来,包括任何特殊字符
22 fmt.Println(s5)
23
24 var l6 = len(s4)
25 fmt.Println(l6)
26
27 var s6 = fmt.Sprintf("%s--%s--%s",s1,s2,s3)//字符串格式化拼接方式
28 println(s6)
29
30 ipAddr := "192.168.0.119;39.105.45.77"
31
32 ipArray := strings.Split(ipAddr,";")//字符串分割 以分号作为分割
33
34 fmt.Printf("The first ip:%s
",ipArray[0])
35 fmt.Printf("The second ip:%s
",ipArray[1])
36
37 result := strings.Contains(ipAddr,"39.105.45.77")//查看是否包含子串
38 fmt.Println(result)
39
40 str := "http://baidua.com"
41 if strings.HasPrefix(str,"http") {
42 println("This is a http url")
43 } else {
44 println("This isn't http url")
45 }
46
47 if strings.HasSuffix(str,"baidu.com") {
48 println("this is a baidu url")
49 } else {
50 println("this isn't baidu url")
51 }
52
53 index := strings.Index(str,"baidu")
54 println(index)
55
56 index = strings.LastIndex(str,"a")
57 println(index)
58
59 strIpArray := strings.Join(ipArray,"----")
60 println(strIpArray)
61
62 //字符串底层就是一个byte数组
63 s7 := "ABCDEF"
64 fmt.Printf("s7[0] = %c
",s7[0])
65
66 //很明显这个range返回值是两个 前面表示数组的下标 后面表示当前下标的值
67 for index, ch := range s7{
68 fmt.Printf("s7[%d] = %c
",index, ch)
69 }
70 //如果就一个返回值的话那就是返回数组的下标
71 for ch := range s7 {
72 fmt.Println(ch)
73 }
74
75 //字符串是没办法通过下标进行修改的 因此我们要将字符串转成byte数组
76 var byteSplit []byte
77 byteSplit = []byte(s7)
78 for i := 0; i < len(byteSplit); i++ {
79 fmt.Printf("%c ", byteSplit[i])
80 }
81 println()
82
83 //修改数组元素然后转成字符串即可完成修改字符串
84 byteSplit[0] = 'M'
85 s7 = string(byteSplit)
86 println(s7)
87
88 //由于字符串的底层原理是byte 所以在求字符串长度的时候,求出来的是byte的长度
89 s8 := "小尾学长"
90 fmt.Printf("s8 len = %d
", len(s8)) //长度是12 因为每个中文占三个字节
91
92 //在go里面表示一个utf8的字符使用的是rune
93 var c1 rune= '中'
94 fmt.Printf("c1 = %c
",c1)
95
96 var runeSplit []rune
97 runeSplit = []rune(s8)
98 fmt.Printf(" %c
%c
%c
%c
",runeSplit[0],runeSplit[1],runeSplit[2],runeSplit[3] )
99 fmt.Printf("runeSplit len is %d
",len(runeSplit))//长度是4
100 runeSplit[3] = '姐'
101 s8 = string(runeSplit)
102 println(s8)//变成小尾学姐啦...
103
104 }