混个脸熟 -- 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数据传输提供的一系列接口 ...
随机推荐
- Python 之mysql类封装
import pymysql class MysqlHelper(object): conn = None def __init__(self, host, username, password, d ...
- PC、h5项目接入第三方支付宝扫码登录、扫码付款
首先介绍一下pc项目接入支付宝扫码支付. 1.pc.移动接入支付宝扫码支付. 其实这个逻辑很简单,前端所需要处理的不是很多,后台会给一个连接,前端只需要将要支付的订单id拼接在这个连接上,然后打开跳转 ...
- STL中队列queue的用法
头文件:#include <queue> 建立一个队列queue < 类型 > q 加入一个新的元素q.push(a) 询问队首元素q.front() 弹出队首元素q.pop( ...
- gitlab分享项目到其它组
1. 找到以下页面(管理员权限),随便点入一个项目 2. 点击edit编辑 3.点击members 4. 查看是否分享成功
- 优化JAVA查询Mongodb数量过大,查询熟读慢的方法
前言:2018年的时候优化了一个项目,该项目从MOngodb中获取数据的时候一次去十万百万千万的数据过慢,往往每次都要二十秒,三十秒,今天提出了一个代码优化的方案 项目查从mongodb中获取数据:代 ...
- linux中的umask命令
转载:http://blog.51cto.com/1123697506/882064 一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不 ...
- 10.mysql事务管理及python操作
在用户操作MySQL过程中,对于一般简单的业务逻辑或中小型程序而言,无需考虑应用MySQL事务.但在比较复杂的情况下,往往用户在执行某些数据操作过程中,需要通过一组SQL语句执行多项并行业务逻辑或程序 ...
- bat 读取当前目录指定文件信息并拼接
bat 读取指定文件的信息并拼接成指定格式
- Matplotlib基础知识
Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...
- 第六节:web爬虫之urllib(二)
二.urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, metho ...