本文意在帮助 Go 语言初学者在 Linux环境下编写自己的第一个Golang程序

难点主要在 VScode 中 Go 插件的下载 与 go.mod 以及编译运行和 第一个Go测试程序的使用

前提准备:安装Ubuntu20.4、安装Go并配置环境

1.下载并安装 VScode 编译器 (自行下载,不再赘述)

2.打开 VScode,按步骤安装中文插件以及对GO语言的支持

  • 先去你自己想要的位置创建一个文件夹用来存储go文件
  • 在 VScode 下打开该文件夹,在里面随便创建一个后缀命名为.go.的文件 (hello.go)
  • 然后跟着提示安装就行

3.安装 GO 各种工具插件(坑点)

  • 当弹出以下内容时,你可以 install VScode 提示你需要的工具插件
  • 使用国内环境会提示安装失败(没办法,特殊原因)
  • 解决办法很简单,在终端中输入以下内容即可
go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.com.cn,direct
  • 重启 VScode,然后继续安装就没问题了

4.编写 Hello,World

package main

import "fmt"

func main() {
fmt.Println("Hello, world")
}
  • 此时可以直接使用运行
go run hello.go 

5.它是如何运行的

  • 用 Go 编写程序,你需要定义一个 main 包,并在其中定义一个 main 函数。包是一种将相关的 Go 代码组合到一起的方式。
  • func 关键字通过函数名和函数体来定义函数。
  • 通过 import "fmt" 导入一个包含 Println 函数的包,我们用它来打印输出。

6.如何测试

  • 你打算如何测试这个程序?将你「领域」内的代码和外界(会引起副作用)分离开会更好。fmt.Println 会产生副作用(打印到标准输出),我们发送的字符串在自己的领域内。
所以为了更容易测试,我们把这些问题拆分开。
 
package main

import "fmt"

func Hello() string {
return "Hello, world"
} func main() {
fmt.Println(Hello())
}
  • 我们再次使用 func 创建了一个新函数,但是这次我们在定义中添加了另一个关键字 string。这意味着这个函数将返回一个字符串。
现在创建一个 hello_test.go 的新文件,来为 Hello 函数编写测试
 
package main

import "testing"

func TestHello(t *testing.T) {
got := Hello()
want := "Hello, world" if got != want {
t.Errorf("got '%q' want '%q'", got, want)
}
}
 
mod一下,再保存(必须要保存不然会出错)
go mod init {项目名}
  • 在解释这个测试之前,让我们先在终端运行 go test,它应该通过测试了!为了再次验证,可以尝试改变 want 字符串来破坏测试的结果。
 

以上,完成!

(新手向)在Linux中使用VScode编写 "Hello,world"程序,并编写测试-Ubuntu20.4的更多相关文章

  1. 利用Linux中的计划任务+PHP网页程序(转)

    利用Linux中的计划任务+PHP网页程序,实现对web服务器运行状况的监测[每5分钟监测一次,并邮件提醒]一.我的监测服务器环境:rhel5.5+apache2.2+php5二.功能描述:写一个PH ...

  2. 怎么样通过编写Python小程序来统计测试脚本的关键字

    怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...

  3. linux 中 eclipse 开发 c/c++ 多线程程序,添加 libpthread.a 库支持

    导入头文件 在 linux 中开发多线程程序,在使用到 pthread 系列函数的文件中,需要导入头文件: #include <pthread.h> 链接 libpthread.a 在编译 ...

  4. Linux中ansible批量管理软件部署及剧本编写

    服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29: ...

  5. linux 中C语言便于调试的宏定义编写及 __FILE__,__FUNCTION__, __LINE__参数使用

    转自:http://blog.csdn.net/edonlii/article/details/8491342/ 在linux编程中,当文件数量变的众多之后,使用gdb调试就是一场灾难.因此在程序中加 ...

  6. [转] linux中巧用ctrl-z后台运行程序

    背景: 最近在执行一些长时间程序的时候,老是一不小心忘了输入‘&’ , 结果终端就卡在那里了,很是郁闷 以前总是再新开一个终端. 今天翻看<鸟哥的linux私房菜>的时候,发现介绍 ...

  7. linux中巧用ctrl-z后台运行程序

    我们知道后台运行任务时,可以用 () 和 &,但是有的时候我们会忘记加&,对于执行需要很长时间的任务来说,Ctrl+Z可能是一个比较好的把任务转入后台的方法. 当我们按下Ctrl+Z时 ...

  8. linux中脚本权限问题以及win下使用telnet测试linux端口

    一个脚本叫up,执行脚本报错如下: -bash: ./up: Permission denied 解决: chmod +rx up 在执行,OK了. /************************ ...

  9. 按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    int[]x=new int [50]; char[][]y=new char[10][10]; int j=1,w=0; for(int i=0;i<50;i++) { x[i]=j; j+= ...

  10. 16.按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    //分类 package com.bao; public class Shuchu { int[]yi=new int[50]; String[][]er=new String[10][10]; vo ...

随机推荐

  1. IE浏览器a标签无法下载问题解决(IE浏览器a标签download属性不兼容问题解决)

    //下载文件流函数,只支持get方法. export function downBlob(payload) { return new Promise(((resolve, reject) => ...

  2. mac中Mysql各种版本下载

    https://downloads.mysql.com/archives/community/ 安装后,5.8以下修改密码,参考 https://www.cnblogs.com/xuyin/p/121 ...

  3. *args、**kwargs参数组

    '''def test(*args): # *agrs接收的是N个位置参数,不能接受关键字参数,转化成元祖 print(args)test(1,2,3,4,5,6)test(*[1,2,4,5,5]) ...

  4. Hive. 函数 instr 的用法

    INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 sel ...

  5. JS实现异步的方法:回调函数callback、事件监听、setTimeout、Promise、生成器Generators/yield、async/awt

    所有异步任务都是在同步任务执行结束之后,从任务队列中依次取出执行. 回调函数是异步操作最基本的方法,比如AJAX回调,回调函数的优点是简单.容易理解和实现,缺点是不利于代码的阅读和维护,各个部分之间高 ...

  6. WinCC插件制作教程

    目录 插件的编写 插件的使用 参考资料 Creation of .NET Controls 109759944_Prepare.NetControls_DOC_en.pdf 插件的编写 创建插件项目, ...

  7. Linux 获取内网IP地址脚本

    IP=$( /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr: ...

  8. Debug --> wireshark中的lua插件使用

    一.使用Lua脚本对pcap文件按流进行存储 https://zhuanlan.zhihu.com/p/35188803 二.使用tshark对pcap报文进行批量切流 https://blog.cs ...

  9. Python 去掉文本内容中的\xa0字符

    爬取网页时,不可避免会遇到\xa0字符串,就会发现,正则re.sub(r'\xa0', '')和字符串的replace都不管用. 通常地,我们所用的空格的ASCII码是 \x20 ,是在标准ASCII ...

  10. GPS数据处理

    GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The Nationa ...