example01:定义两个常量Man=1 和Female=2,获取当前时间的秒数,如果能被Female整除,则在终端打印femal,否则打印man。
main.go
package main
import (
"fmt"
"time"
)
const (
Man = 1
Female = 2
)
func main() {
for i :=0;i<10;i++ {
second := time.Now().Unix()
fmt.Println(second)
if (second % Female == 0) {
fmt.Println("man")
} else {
fmt.Println("female")
}
time.Sleep(1 * time.Second)
}
}
运行结果:
PS F:\go\src\go_dev\day2\example03\main> go run .\main.go
1575279468
man
1575279471
female
1575279474
man
1575279477
female
1575279480
man
1575279483
female
1575279486
man
1575279489
female
1575279492
man
1575279495
female
PS F:\go\src\go_dev\day2\example03\main>
example02:写一个程序获取当前运行的操作系统名称和PATH环境变量的值,并打印在终端。
package main
import (
"fmt"
"os"
)
func main() {
var goos string = os.Getenv("GOOS")
fmt.Println("the os system is:",goos)
var path string = os.Getenv("PATH")
fmt.Println("the os system is:",path)
}
运行结果:
PS F:\go\src\go_dev\day2\example04\main> go run .\main.go
the os system is:
the os system is: C:\ProgramData\Oracle\Java\javapath;G:\app\oracle12c\product\12.1.0\dbhome_1\bin;E:\software\python3.5\Scripts\;E:\software\python3.5\;C:\Program Files (x86)\Intel\iCLS
...
Code\bin;C:\Users\xiehz\AppData\Local\GitHubDesktop\bin;C:\Users\xiehz\AppData\Local\Microsoft\WindowsApps;E:\software\hugo;
PS F:\go\src\go_dev\day2\example04\main>
如果系统没有设置变量,就会输出空。
知识点:
值类型:基本数据类型int、float、bool、string以及数组和struct
引用类型: 指针、slice、map、chan等都是引用类型
example03:写一个程序用来打印值类型和引用类型变量到终端,并观察输出结果。
package main
import (
"fmt"
)
func modifyPointer( a *int) {
*a = 10
fmt.Println("a in modifyPointer = ",*a)
return
}
func modifyValue(a int) {
a = 20
fmt.Println("a in modifyValue =", a)
return
}
func main() {
a := 100
b := make(chan int,1)
fmt.Println("a in main = ", a)
fmt.Println("b = ", b)
fmt.Println("======================")
modifyValue(a)
fmt.Println("a in main = ", a)
fmt.Println("======================")
modifyPointer(&a)
fmt.Println("a in main = ", a)
}
运行结果:
PS F:\go\src\go_dev\day2\example05\main> go run .\main.go
a in main = 100
b = 0xc04209a000
======================
a in modifyValue = 20
a in main = 100
======================
a in modifyPointer = 10
a in main = 10
PS F:\go\src\go_dev\day2\example05\main>
example04:使用math/rand生成10个随机整数,10个小于100的随机整数以及10个随机浮点数。
main.go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().Unix())
for i :=0;i< 10; i++{
a := rand.Int()
fmt.Println(a)
}
for i := 0;i <10;i++{
a := rand.Intn(100)
fmt.Println(a)
}
for i := 0;i<10;i++ {
a := rand.Float32()
fmt.Println(a)
}
}
运行结果:
PS F:\go\src\go_dev\day2\example07\main> go run .\main.go
5577006791947779410
...
2775422040480279449
94
...
6
0.20318687
...
0.69671917
PS F:\go\src\go_dev\day2\example07\main>
example05: 字符串输出两种,双引号:一行一行;反引号:保留格式
package main
import (
"fmt"
)
func main() {
var str = "hello world \n"
var str1 = `
aaaaa
bbbbb
ccccc
ddddd
`
var b byte = 'c'
fmt.Println(str)
fmt.Println(str1)
fmt.Printf("%c \n",b)
}
运行结果:
PS F:\go\src\go_dev\day2\example08\main> go run .\main.go
hello world
aaaaa
bbbbb
ccccc
ddddd
c
PS F:\go\src\go_dev\day2\example08\main>
example06:整数,字符,字符串
package main
import (
"fmt"
)
func main() {
var a int = 100
fmt.Printf("%d\n",a)
fmt.Printf("%c\n",a)
fmt.Printf("%q\n",a)
str := fmt.Sprintf("%d",a)
fmt.Printf("%q\n",str)
}
运行结果:双引号的是字符串
PS F:\go\src\go_dev\day2\example09\main> go run .\main.go
100
d
'd'
"100"
PS F:\go\src\go_dev\day2\example09\main>
example07:字符串的操作
package main
import (
"fmt"
)
func main() {
var str1 = "hello"
str2 := "world"
str3 := fmt.Sprintf("%s %s",str1,str2)
fmt.Println(str3)
/*
for i,_:= range str3 {
fmt.Printf("%c \n", str3[i])
}
*/
substr := str3[0:5]
fmt.Println(substr)
substr = str3[6:]
fmt.Println(substr)
for i := len(str3)-1;i>=0;i--{
fmt.Printf("%c",str3[i])
}
n := len(str3)
for i,_ := range str3 {
fmt.Printf("%c",str3[n-i-1])
}
}
运行结果:
PS F:\go\src\go_dev\day2> go run .\example10\main\main.go
hello world
hello
world
dlrow ollehdlrow olleh
PS F:\go\src\go_dev\day2>
写点心情:
2019年12月2号,北京的天气这两天很不错,没有风,所以不太冷。写博客的第3天,每天都记录一点,享受每日精进的感觉。
但也发现一些问题:
1、我的笔记是否有价值呢?
2、缺少了自己的思考,要把自己的想法写进来,不然只是贴简单代码,没有价值。
3、每天要管理好自己的时间,避免花太多时间在某一块内容,而忽略了其它课程的学习。
目前,比较紧急的事情有如下三个:
1、openstack集成kubernetes。
2、openstack、kubernetes、docker的体系架构需要熟练掌握以及需要系统地学习原理。
3、golang的学习,多写代码以及写项目。
今天很意外地发现,原来的同事洪jr,也出差到集成,就在工位对面的会议室。小格调同学还带了好吃的,明天会带来,开心,小期待一下~