混个脸熟 -- 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包)
混个脸熟 -- go的更多相关文章
- QEventLoop的全部源码也不多,混个脸熟
/**************************************************************************** ** ** Copyright (C) 20 ...
- [OC] NSURLSession
有的程序员老了,还没听过NSURLSession 有的程序员还嫩,没用过NSURLConnection 有的程序员很单纯,他只知道AFN. NSURLConnection在iOS9被宣布弃用,NSUR ...
- 网络第三节——NSURLSession
有的程序员老了,还没听过NSURLSession有的程序员还嫩,没用过NSURLConnection有的程序员很单纯,他只知道AFN. NSURLConnection在iOS9被宣布弃用,NSURLS ...
- twobin博客样式—“蓝白之风”
自暑假以来,囫囵吞枣一般蒙头栽入前端自学中,且不说是否窥探其道,却不自觉中提高了对网页版面设计的要求,乃至挑剔.一个设计清爽美观的网页能让读者心旷神怡,甚至没有了阅读疲劳:而一个设计粗劣嘈杂的网页实在 ...
- APOC 15 Years Celebration
最近很忙,没有及时更新博客,也没有参加各种活动,唯一的活动就是接下来要讲的APOC 15 Years Celebration.不知不觉,自己也加入APOC有一年多了,正如大家所说“岁月是把杀猪刀”,我 ...
- jQuery-1.9.1源码分析系列(二)jQuery选择器续2——筛选
前面分析了选择器的结构和几个解析函数,接下来分析jQuery对象的伪类选择器.这里所谓的jQuery对象的伪类选择器就是从已有的jQuery对象(元素集合)中筛选出指定的集合出来. 4. jQu ...
- 没听说过这些,就不要说你懂并发了,three。
引言 很久没有跟大家再聊聊并发了,今天LZ闲来无事,跟大家再聊聊并发.由于时间过去的有点久,因此LZ就不按照常理出牌了,只是把自己的理解记录在此,如果各位猿友觉得有所收获,就点个推荐或者留言激励下LZ ...
- 初探JavaScript(二)——JS如何动态操控HTML
除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...
- 使用NSURLSession
NSURLConnection在iOS9被宣布弃用,NSURLSession从13年发展到现在,终于迎来了它独步江湖的时代.NSURLSession是苹果在iOS7后为HTTP数据传输提供的一系列接口 ...
随机推荐
- jenkins执行python脚本
参考: https://blog.csdn.net/qq_39247153/article/details/81003244 https://blog.csdn.net/huashao0602/art ...
- java关于工作,跳槽之总结
关于工作中: 如何展示自己项目中的亮点,技术或者难点: 总结我的经历和技术倒是可以,但是我做的项目和我会的技术都很平庸,实在找不到亮点怎么办? 如果知道了你没有亮点,也就是知道了你自己欠缺什么,那么下 ...
- C#文件路径问题
一丶声明的文件路径 @"/Upload\\" + timeStr + @"\\" + fileName; \\ 中第一个\是转义符 \\表示的是一个字符 即'\ ...
- Array的内置方法思维导图整理(JavaScript)
按照MDN整理的数组部分的思维导图,主要目的是方便查漏补缺,所以写的不是很详细.
- HDU - 2159 FATE(二维dp之01背包问题)
题目: 思路: 二维dp,完全背包,状态转移方程dp[i][z] = max(dp[i][z], dp[i-1][z-a[j]]+b[j]),dp[i][z]表示在杀i个怪,消耗z个容忍度的情况下 ...
- Ac自动机基础题集合
Ac_automaton的板子打熟以后发现碰到题不会做,而且还是比较纯的板子,只要改几处地方就可以,Ac_automation有许多优秀而fantasy的性质,下面粘几个题,来记录一下做题的心得. 1 ...
- vue 使用echarts
import echarts from 'echarts' <div id="kocGrow" style="width: 600px;height: 300p ...
- js两个整数之间求和
const GetSum = (a, b) => { let min = Math.min(a, b), max = Math.max(a, b); return (max - min + 1) ...
- R语言为数据框添加列名或行名
1.添加列名 wts=c(1,1,1) names(wts)=c("setosa","versicolor","virginica") 2. ...
- Linux进程线程学习笔记:运行新程序
Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ...