青训营入门第一天——Go语言基础 | 青训营笔记

124 阅读3分钟

青训营入门第一天——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))
    //if else
    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)//key a;key b
}

总结 以上大致就是我初步学习到Go语言所做的笔记以及心得体会了。任重而道远啊!!!