一、第一个项目: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包)

最新文章

  1. Qt Disable QDebug And Warning Output
  2. IOS开发基础知识--碎片34
  3. Nginx日志切割,以及脚本上传nginx的切割日志
  4. 我所了解的WEB开发(4) - 神奇的URL
  5. python2.7抓取豆瓣电影top250
  6. HashCode作用
  7. IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例
  8. 屏蔽鼠标右键功能JS
  9. MyBatis物理分页的代码实现
  10. python之作业--------购物车优化
  11. 【状压dp】Bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛
  12. Linux--主从复制
  13. 第一章 Python程序语言简介
  14. 无法给MySQL root用户修改密码的解决方法
  15. django---单表操作之展示书籍列表
  16. android显示和隐藏软键盘
  17. Collections.shuffle()源码分析
  18. java集合ArrayList
  19. SQL server 累加求和
  20. 【scala】占位符

热门文章

  1. 非常好用的1款UI自动化测试工具:airTest
  2. Vue动态创建组件方法
  3. 用 ilasm 反编译、修改.net dll文件
  4. 如何使用 Python 创建一名可操控的角色玩家
  5. 准备MPI编程环境&mdash;&mdash;Visual Studio
  6. Python基础-奇偶判断调用函数
  7. 【codeforces 767B】The Queue
  8. [cogs736][网络流24题#13]星际转移[网络流,网络判定]
  9. 某种密码(password.*)
  10. svn重新定位或checkout,提示输入用户名密码,输入后报错