Go语言基础语法(一)本文介绍一些Go语言的基础语法 。
先来看一个简单的go语言代码:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法 。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库 ,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包 。
log包实现了简单的日志服务,也提供了一些格式化输出的方法 。
执行结果:
下面来介绍一下go的数据类型
【go语言的select go语言的运行环境】下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值 。
常量是在程序编译时就确定下来的值,程序运行时无法改变 。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符 。
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句 。另外还有一种控制语句叫select语句,通常与通道联用 , 这里不做介绍 。
if语法格式如下:
if ... else :
else if:
示例代码:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句 , 不管下一条case语句是否为true 。
示例代码:
执行结果:
下面介绍几种循环语句:
执行结果:
执行结果:
也可以通过标记退出循环:
--THE END--
golang sync.mutex 超时select做go语言的select了一个参考实例 。假设某线程占用时间5秒go语言的select,超时时间为2秒
func mian() {
lock := sync.Mutex{}
lock.Lock()
defer lock.Unlock()
timer := time.NewTimer(2 * time.Second)
end:=make(chan int)
go func() {
time.Sleep(5*time.Second)
fmt.Println("wait")
end-1
}()
select {
case -end:
case -timer.C:
}
fmt.Println("End")
}
golang select 为什么要for循环有数量不定的goroutine往channel里塞东西,然后select来接收并处理 。如果所有的goroutine都完成工作,ch也接收完了 , 那么select就会阻塞 。现在我想要跳出死循环,大概是在for循环里设置一些东西,不知道可不可以实现 , 或者有类似的解决方法 。
go func(){for{select{case v:= 《-ch://这里打左尖括号排版就会乱,不知道是不是网站的bugDoSomething()}}}()
关于go语言的select和go语言的运行环境的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 电商cms如何设计,使用cms快速搭建商业网站
- 包含flutterwidth的词条
- 老司机都在看什么直播,老司机在哪个直播平台直播
- 怎么把多张照片弄成pdf,怎么把多张照片弄成pdf文档
- java圣诞树代码动态 圣诞节程序编写
- 夸克浏览器下载,夸克浏览器下载地址
- oracle恢复修改数据,oracle恢复数据文件
- 高铁游戏推荐手机版安卓,高铁高铁游戏
- go语言网站发布 go语言官方中文文档