go语言单测学习顺序 go语言教程推荐

GO语言学习系列八——GO函数(func)的声明与使用

GO是编译性语言,所以函数的顺序是无关紧要的,为了方便阅读,建议入口函数 main 写在最前面,其余函数按照功能需要进行排列

万载网站建设公司创新互联,万载网站设计制作,有大型网站制作公司丰富经验。已为万载1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的万载做网站的公司定做!

GO的函数 不支持嵌套,重载和默认参数

GO的函数 支持 无需声明变量,可变长度,多返回值,匿名,闭包等

GO的函数用 func 来声明,且左大括号 { 不能另起一行

一个简单的示例:

输出为:

参数:可以传0个或多个值来供自己用

返回:通过用 return 来进行返回

输出为:

上面就是一个典型的多参数传递与多返回值

对例子的说明:

按值传递:是对某个变量进行复制,不能更改原变量的值

引用传递:相当于按指针传递,可以同时改变原来的值,并且消耗的内存会更少,只有4或8个字节的消耗

在上例中,返回值 (d int, e int, f int) { 是进行了命名,如果不想命名可以写成 (int,int,int){ ,返回的结果都是一样的,但要注意:

当返回了多个值,我们某些变量不想要,或实际用不到,我们可以使用 _ 来补位,例如上例的返回我们可以写成 d,_,f := test(a,b,c) ,我们不想要中间的返回值,可以以这种形式来舍弃掉

在参数后面以 变量 ... type 这种形式的,我们就要以判断出这是一个可变长度的参数

输出为:

在上例中, strs ...string 中, strs 的实际值是b,c,d,e,这就是一个最简单的传递可变长度的参数的例子,更多一些演变的形式,都非常类似

在GO中 defer 关键字非常重要,相当于面相对像中的析构函数,也就是在某个函数执行完成后,GO会自动这个;

如果在多层循环中函数里,都定义了 defer ,那么它的执行顺序是先进后出;

当某个函数出现严重错误时, defer 也会被调用

输出为

这是一个最简单的测试了,当然还有更复杂的调用,比如调试程序时,判断是哪个函数出了问题,完全可以根据 defer 打印出来的内容来进行判断,非常快速,这种留给你们去实现

一个函数在函数体内自己调用自己我们称之为递归函数,在做递归调用时,经常会将内存给占满,这是非常要注意的,常用的比如,快速排序就是用的递归调用

本篇重点介绍了GO函数(func)的声明与使用,下一篇将介绍GO的结构 struct

怎样学习GO语言?

golang学习比较简单,不过任何一门语言都不是孤立存在的,在这里简要说明一下golang开发的学习路线

1.golang基础,包括go语言安装,go语言语法,流程控制语句,函数,方法,面向对象概念,网络编程,并发编程等

2.golang开发框架,包括beego,gin,Iris,Echo等

3.微服务开发

4.深入的话还可以学习算法部分。如果要接触区块链相关技术的话,还需要学习区块链的加密算法等相关知识

5.如果要结合go实现应用的话,肯定离不开各种数据库,比如关系型数据库oracle、mysql,或者各类非关系型数据库等等

6.如果需要开发界面的话,还需要学习网页编程如html,javascript,vue,elementUI,bootstrap等网页开发技术和框架。

7.在以上学习的基础上还可以向架构方面深入学习。

链乔教育在线祝您学有所成。

怎么学习golang

除了Java、Python和JavaScript之外,如果要开始学习一门新语言的话,我想应该是Go!

Go语言正在被越来越多的公司使用。我们公司的后端服务已经全面采用Go语言实现了。

最开始接触Go语言是去年将一份Go代码“翻译”成Python并集成到测试平台上,说来也挺神奇,我从来没学过Go却完成了这个工作,这也侧面反应了Go的语法还是很平易近人的。

今年,在海翔飞调岗之后已经没有太多时间写代码了,但如果要开始学习一个新的语言或技术的话,我最想学的是Go!

目前来看,Go似乎还并没有太多测试人员使用的场景,不过,我之前介绍过的BDD行为驱动框架gauge是由Go开发的,当然,它也支持使用Go来编写BDD测试代码。

对于,已经有一定开发经验的同学,如何快速的开始学习Go语言呢?我这里给一些思路。

#### 第一步:下载和安装

在配置环境的时候你需要重点了解GOROOT、GOPATH的作用。

你还要准备一款称手的编辑器,如果你像我一样,一直都在使用VS Code的话,那么就它就可以了。

#### 第二步:从hello world开始

先运行一个hello world程序,认识Go语言的语法。

package main

import (    "fmt")

func main(){

fmt.Println("helloworld!")

}

#### 第三步:熟悉Go的语法

接下来,你可能要花一周左右的时间熟悉Go语言的语法。比如,变量定义、if/for、函数、Map、跨文件的程序调用…等,当然,还有一些Go特有的知识。

当然,我更喜欢看视频教程,虽然质量参差不齐,但我仍然觉得看视频比我自己看书更有效率。

熟悉一段Go代码:

package main

import"fmt"

func myFunc() {

i := 0

Here:   //这行的第一个词,以冒号结束作为标签

fmt.Println(i)

i++    if i 10{        goto Here   //跳转到Here去

}

}func main() {    //调用函数

myFunc()

}

#### 第四步:Go如何做单元测试

针对Go做测试也非常简单。比如,这是一个被测试文件:add.go。

package test_demofunc Add(a int, b int) int{    return a + b

}

下面针对Add()函数编写测试用例,test_add.go

package test_demo

import (    "testing")

func TestAdd1(t *testing.T){

r:= Add(1, 2)    if r !=3{

t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)

}

}

func TestAdd2(t *testing.T){

r:= Add(2, 2)    if r !=4{

t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)

}

}

你只需要执行 go test 命令就可以运行上面的测试了。

#### 第五步:从哪儿找第三方库

当然,你只学习go语言本身,基本是做不了什么事的,必须要使用第三方扩展库。

这里罗列了Go语言的第三方库,通过这些第三方库的介绍,我们也可以大概知道Go可以用来干什么。

如果你知道库的名字的话,也可以在这个网站上搜索。

据我了解,Go的第三方库大多都在GitHub上面。

#### 第六步:用Go做Web开发

Go是静态语言,而且支持并发编程,所以,他有天然的性能优势,大多公司主要使用Go也是开发后端服务(即API)。

终于到了实战阶段,如果我们真的要掌握一门语言,那么一定要用它来开发一个项目出来。这个过程大概需要一个月。

Beego是Go下在主流的Web开发框架,资料相对比较丰富,而且有完善的文档。你可为此制定一个目标,比如用它来开发一个Blog,为此,你需要详细阅读Beego文档,以及学习相关的Web开发技术。

等你完成这个项目的时候,我想你已经会使用Go语言了。


当前题目:go语言单测学习顺序 go语言教程推荐
网页URL:http://myzitong.com/article/ddiggop.html