混个脸熟 -- go
2024-09-07 21:15:58
一、第一个项目: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包)
最新文章
- Qt Disable QDebug And Warning Output
- IOS开发基础知识--碎片34
- Nginx日志切割,以及脚本上传nginx的切割日志
- 我所了解的WEB开发(4) - 神奇的URL
- python2.7抓取豆瓣电影top250
- HashCode作用
- IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例
- 屏蔽鼠标右键功能JS
- MyBatis物理分页的代码实现
- python之作业--------购物车优化
- 【状压dp】Bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛
- Linux--主从复制
- 第一章 Python程序语言简介
- 无法给MySQL root用户修改密码的解决方法
- django---单表操作之展示书籍列表
- android显示和隐藏软键盘
- Collections.shuffle()源码分析
- java集合ArrayList
- SQL server 累加求和
- 【scala】占位符
热门文章
- 非常好用的1款UI自动化测试工具:airTest
- Vue动态创建组件方法
- 用 ilasm 反编译、修改.net dll文件
- 如何使用 Python 创建一名可操控的角色玩家
- 准备MPI编程环境&mdash;&mdash;Visual Studio
- Python基础-奇偶判断调用函数
- 【codeforces 767B】The Queue
- [cogs736][网络流24题#13]星际转移[网络流,网络判定]
- 某种密码(password.*)
- svn重新定位或checkout,提示输入用户名密码,输入后报错