混个脸熟 -- go

一、第一个项目: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包)
posted @ 2019-03-25 13:15  xiaobaiskill  阅读(222)  评论(0编辑  收藏  举报