一、第一个项目:hello world

src/day1/example1/main.go

package main

import "fmt"

func main(){
    fmt.Println("hello world")
}

运行命令: go run day1/example1
输出结果:hello world

解释:

package main  // 声明包名

import "fmt" // 导入fmt包, go 的标准库里面的fmt,你可以在goroot/src 看到这些包

func main(){ // main函数,一个项目有且仅有一个main函数,也就是程序入口和C语言一样
    fmt.Println("hello world") // 使用fmt包的Println 函数
}

二、go的注释

package main

import "fmt"

func main(){
    
    num := 12  
    // 我是单行注释
    fmt.Println(num)
    /*
    这里有一个num:=12 这是go 语言的变量简短声明方式
    当然你也可以
    var num int
    num = 12
    变量的下面会说
    
    这是多行注释
     */
}

三、变量的声明方式

2.1 全局变量

src/day1/example2/main.go

package main

import "fmt"

var num int  // 全局变量在main函数外声明
var num1 int = 12 // 全局变量声明 + 赋值
//num2 := 12 // 非法的

// 优雅的变量声明
var (
    name string
    obj string
    sex int
)
func main(){
    num = 12 // 赋值
    age := 26 // 简短声明 常用,main 函数内的局部变量
    fmt.Println(age)

    for i:=0;i<5;i++{  // for 循环内的变量i 是局部的
        fmt.Println(i)
    }
    //fmt.Println(i)
}

2.2 局部变量

src/day1/example3/main.go

package main

import "fmt"


func main(){
    num1 :=22 // main 函数中的局部变量
    num2 :=33
    s := sum(num1,num2) // main 中的局部变量 与 sum 函数中的局部变量无关
    fmt.Print(s)
}

func sum(n1,n2 int)int{
    s := n1 + n2 //sum函数中的局部变量
    return s
}

四、go语言强大之处

src/day1/example4/main.go

package main

import (
    "fmt"
    "time"
)

func main(){
    for i:=0;i<10000;i++{
        // go 关键字 可以开一个协程,且go协程是并行执行的,记住是并行哦,不是并发
        // 协程 在go中应该叫 goroutine
        go func(m int) {
            time.Sleep(2 * time.Second) // 睡了2秒
            fmt.Println(m)
        }(i)
    }

    time.Sleep(3 * time.Second)
    fmt.Println("3秒内1~10000 的数必然会被全部打印出来")
}
/*
go func(m){}(i)

相当与
函数(){
    执行代码
}
go 函数()

//只是两步并一步了

 */

五、注意

1、在go开发阶段常用go run 命令,上线后需要go build 编译
2、在go中 src中一个文件夹最好是一个项目.(上面的测试代码中我是src/day1下每一个文件夹都是一个项目,因为每一个文件夹都是main包)

版权声明:本文为xiaobaiskill原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaobaiskill/p/10575052.html