青训营入门第一天——Go语言基础
本人是第一次接触到Go语言,有着java、C++、Python的编程基础,参加过竞赛,拿过蓝桥杯个人C/C++组国二,天梯赛团队高校全国三等奖,CCPC河北省区域赛二等奖,学过MySQL数据库并能使用SQL语句进行数据库的操作,学习过前端,掌握HTML,CSS,JS等前端语言,现在正在自学计算机网络、操作系统、Linux、网络安全、软件工程和Go语言后端开发等多项内容
Go语言特性
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译跨平台
- 垃圾回收
package main
import(
"net/http"
)
func main(){
http.Handle("/",http.Fileserver(http.Dir("."))
http.ListenAndServe(":8080",nil)
}
Go的基础语法
package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
)
go run example/01-hello/main.go
hello world
go build example/01-hello/main.go
./main
hello world
go
package main
import(
"fmt"
"math"
)
func main(){
var a "initial"
var b,c int = 1,2
var d = true
var e float64
f := float32(e)
g:= a + "foo"
fmt.Println(a,b,c,d,e,f)
fmt.Println(g)
const s string = "constant"
const h=500000000
const i 3e20 / h
fmt.Println(s,h,i,math.Sin(h),math.sin(i))
package main
import "fmt"
func main(){
if 7%2 == 0{
fmt.Println("7 is even")
else{
fmt.Println("7 is odd")
1f8%4==0{
fmt.Println("8 is divisible by 4")
}
if num :9;num 0{
fmt.Println(num,"is negative")
}
else if num 10{
fmt.Println(num,"has 1 digit")
}
else{
fmt.Println(num,"has multiple digits")
}
}
Go循环 ——只存在for循环,不同于其他语言
package main
import "fmt"
func main(){
i := 1
for{
fmt.Println("Loop")
break
)
for j:=7; j<9; j++ {
fmt.Println(j)
}
for n:=0; n<5; n++ {
ifn%2==0{
continue
}
fmt.Println(n)
}
for i <=3 {
fmt.Println(i)
1=1+1
}
Go的分支结构——Switch分支结构
Go的switch有个不同于C++和JAVA的地方,便是switch中的case,在其它语言中如果不编写break语句,那么case语句就会一直向下执行,直到遇到break语句或者case语句全部执行完成才会停止,然后跳出switch语句,但是Go会默认执行完一条case语句之后直接跳出switch语句。
而且Go的switch更加多样化,判断条件可以是整数,字符,或者是非基本数据类型的内容。
package main
import{
"fmt"
"time"
}
func main(){
a:=2
switch a{
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4,5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
t := time.Now(
switch{
case t.Hour()<12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
}
Go数组
package main
import "fmt"
func main(){
var a [5]int
a[4]=100
fmt.Println(a[4],len(a))
b:=[5]int{1,2,3,4,5}
fmt.Println(b)
var twoD [2][3]int
fori:=0;i<2;i+{
f0rj:=0;j<3;j+
{
twoD[i][j]=i+j
}
}
fmt.Println("2d:"twoD)
}
Go字符串操作
package matn
import "fmt"
func main(){
s :make([]string,3)
s[0]=“a"
s[1]="b"
s[2]="c"
fmt.Println("get:"s[2])//c
fmt.Println("len:"len(s))//3
S = append(s,"d")
s = append(s,"e","f")
fmt.Println(s)
c :make([]string,len(s))
copy(c,s)
fmt.Println(c)//a b c d e f
fmt.Println(s[2:5])
fmt.Println(s[:5])
fmt.Println(s[2:])
good :=[]string{"g","o","o","d"}
fmt.Println(good)
}
Go的MAP
package main
import "fmt"
func main(){
m make(map[string]int)
m["one"]=1
m["two"]=2
fmt.Println(m)
fmt.Println(len(m))
fmt.Println(m["one"])
fmt.Println(m["unknow"])/0
r,ok:=m["unknow"]
fmt.Println(r,ok)
delete(m,"one")
m2 :map[string]int{"one":1,"two":2}
var m3 map[string]int{"one":1,"two":2}
fmt.Println(m2,m3)
}
range
package main
import "fmt"
func main(){
nums:=[]int{2,3,4}
sum :0
for i,num :range nums{
sum +num
if num ==2{
fmt.Println("index:"i,"num:"num)
fmt.Println(sum)
m :map[string]string{"a":"A","b":"B"}
for k,v :range m
fmt.Println(k,v)
for k :range m{
fmt.Println("key",k)
}
总结 以上大致就是我初步学习到Go语言所做的笔记以及心得体会了。任重而道远啊!!!