教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go 编程小tips

go 编程小tips

发布时间:2022-01-20   编辑:jiaochengji.com
教程集为您提供go 编程小tips等资源,欢迎您收藏本站,我们将为您提供最新的go 编程小tips资源

1,if条件语句注意事项:条件语句不需要使用括号将条件包含起来 () ; 无论语句体内有几条语句,花括号 {} 都是必须存在的; 左花括号 { 必须与 if 或者 else 处于同一行; 在 if 之后,条件语句之前,可以添加变量初始化语句,使用 ; 间隔;

2,slice可直接使用append对其进行添加元素如append(slice,slice对应元素),也可直接在slice中添加slice,不过此时写法为append(slice1,slice2…),其中slice2后有…表示将slice2打散成元素后再添加到slice1中

3,break可以后面加标签,表示跳出对应标签的循环。如break Look表示跳出外层循环。

<pre name="code" class="html">Loop: for i := 0; i < 5; i { for j := 0; j < 5; j { if j >= 4 { break Loop } } }</pre>

4,go中可使用不定参数,其使用方法如下:“…type”表示具有不定个type类型的参数,不定参数实质上是一个slice类型,故可以使用range对其参数进行取值。如下例子。

<pre name="code" class="html">func myfunc(args ...int) { for _, arg := range args { fmt.Println(arg) } }</pre>

5.go语言中没有构造函数的概念,对象的构建通常交给一个全局构建函数来构建,通常以NewXXX来命名,表示构造函数。如

<pre name="code" class="html">func NewRect(x, y, width, height float64) *Rect { return &Rect{x, y, width, height} }</pre>
6.<span style="color:#FF0000">go语言中对于堆和栈的内存分配没有严格区分,在go中返回一个局部变量的地址是绝对没有问题的,变量关联的存储在函数返回后依然存在.</span>(注:尤其对由C/C 转过来的程序员,开始肯定不是很适应,但是go这种内存分配方式解放了程序员,使得程序员能够专注做事情,而不用花费太多的时间在堆和栈的内存分配上).更直接的说,<span style="color:#FF0000">在go语言中,如果一个局部变量在函数返回后仍然被使用,那么这个变量会在堆heap,而不是栈stack中进行内存分配.</span>详情参考<span style="font-family:Helvetica; font-size:14px">How do I know whether a variable is allocated on the heap or the stack?</span>

7. golang允许多个返回值,并且返回值有两种形式,一种只是指定类型,还有一种指定返回值名称.如下所示:

<pre name="code" class="html"> func SumAndProduct(a, b int) (int, int) { return a b, a*b }  func SumAndProduct(a, b int) (add int, Multiplied int) { add = a b; Multiplied = a * b; return } </pre><span style="font-family:'Microsoft YaHei'">当定义函数时指定返回参数变量时,可以直接返回而不用带变量名。注意:如果命令的返回参数跟函数代码块中的变量同名,他会被隐藏,此时需显示return返回结果;还有就是显式return会先修改命名返回值,然后再执行defer延迟语句。由于会出现<span style="font-family:'Microsoft YaHei'">函数中临时变量名和指定返回值名字冲突的情况,所以建议使用不<span style="font-family:'Microsoft YaHei'">指定返回值名称的形式.</span></span></span>

到此这篇关于“go 编程小tips”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
网页标题随机显示名言js代码
go 编程小tips
css3提示框效果测试实例
Golang-特点
docker golang 开发环境
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
Go WaitGroup实现原理
Go语言学习3----Go语言特色
龙芯平台构建Go语言环境指南
C/C /Go混合编程实践之GoJieba

[关闭]
~ ~