Go编程
文章平均质量分 83
Go小白到进阶
小夕Coding
大厂程序员,阿里P9
展开
-
go空指针nil
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。原创 2023-01-17 20:28:40 · 453 阅读 · 0 评论 -
Go函数声明
但是,如果实参包括引用类型,如指针,slice(切片)、map、function、channel等类型,实参可能会由于函数的间接引用被修改。如果两个函数形式参数列表和返回值列表中的变量类型一一对应,那么这两个函数被认为有相同的类型或签名。函数的形参和有名返回值作为函数最外层的局部变量,被存储在相同的词法块中。在这种情况下,每个返回值被声明成一个局部变量,并根据该返回值的类型,将其初始化为该类型的零值。x和y是形参名,3和4是调用时的传入的实参,函数返回了一个float64类型的值。原创 2022-09-16 21:25:16 · 181 阅读 · 0 评论 -
Go语言 JSON
Go语言对于这些标准格式的编码和解码都有良好的支持,由标准库中的encoding/json、encoding/xml、encoding/asn1等包提供支持(译注:Protocol Buffers的支持由 github.com/golang/protobuf 包提供),并且这类包都有着相似的API接口。基本的JSON类型有数字(十进制或科学记数法)、布尔值(true或false)、字符串,其中字符串是以双引号包含的Unicode字符序列,支持和Go语言类似的反斜杠转义特性,不过JSON使用的是。原创 2022-09-16 21:24:15 · 1038 阅读 · 0 评论 -
Go语言哈希表
map中所有的key都有相同的类型,所有的value也有着相同的类型,但是key和value之间可以是不同的数据类型。虽然浮点数类型也是支持相等运算符比较的,但是将浮点数用做key类型则是一个坏的想法,正如第三章提到的,最坏的情况是可能出现的NaN和任何浮点数都不相等。Map的迭代顺序是不确定的,并且不同的哈希函数实现可能导致不同的遍历顺序。它是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。原创 2022-09-16 21:23:36 · 628 阅读 · 0 评论 -
GO 结构体嵌入和匿名成员
实际上,外层的结构体不仅仅是获得了匿名成员类型的所有成员,而且也获得了该类型导出的全部的方法。匿名成员的数据类型必须是命名的类型或指向一个命名的类型的指针。其实任何命名的类型都可以作为结构体的匿名成员。在本节中,我们将看到如何使用Go语言提供的不同寻常的结构体嵌入机制让一个命名的结构体包含另一个结构体类型的匿名成员,这样就可以通过简单的点运算符x.f来访问匿名成员链中嵌套的x.d.e.f成员。但是在包外部,因为circle和point没有导出,不能访问它们的成员,因此简短的匿名成员访问语法也是禁止的。原创 2022-09-16 21:19:38 · 179 阅读 · 0 评论 -
GO 结构体嵌入和匿名成员
实际上,外层的结构体不仅仅是获得了匿名成员类型的所有成员,而且也获得了该类型导出的全部的方法。匿名成员的数据类型必须是命名的类型或指向一个命名的类型的指针。其实任何命名的类型都可以作为结构体的匿名成员。在本节中,我们将看到如何使用Go语言提供的不同寻常的结构体嵌入机制让一个命名的结构体包含另一个结构体类型的匿名成员,这样就可以通过简单的点运算符x.f来访问匿名成员链中嵌套的x.d.e.f成员。但是在包外部,因为circle和point没有导出,不能访问它们的成员,因此简短的匿名成员访问语法也是禁止的。原创 2022-09-16 21:19:06 · 459 阅读 · 0 评论 -
Go语言Slice(切片)
第二个原因,因为slice的元素是间接引用的,一个固定的slice值(译注:指slice本身的值,不是元素的值)在不同的时刻可能包含不同的元素,因为底层数组的元素可能会被修改。一个nil值的slice的长度和容量都是0,但是也有非nil值的slice的长度和容量也是0的,例如[]int{}或make([]int, 3)[3:]。一种将slice元素循环向左旋转n个元素的方法是三次调用reverse反转函数,第一次是反转开头的n个元素,然后是反转剩下的元素,最后是反转整个slice的元素。原创 2022-09-16 21:17:53 · 839 阅读 · 0 评论 -
Go语言数组
因为函数参数传递的机制导致传递大的数组类型将是低效的,并且对数组参数的任何的修改都是发生在复制的数组上,并不能直接修改调用时原始的数组变量。虽然通过指针来传递数组参数是高效的,而且也允许在函数内部修改数组的值,但是数组依然是僵化的类型,因为数组的类型包含了僵化的长度信息。因为数组的长度是固定的,因此在Go语言中很少直接使用数组。如果一个数组的元素类型是可以相互比较的,那么数组类型也是可以相互比较的,这时候我们可以直接通过==比较运算符来比较两个数组,只有当两个数组的所有元素都是相等的时候数组才是相等的。原创 2022-09-16 21:17:03 · 218 阅读 · 0 评论 -
Go语言 iota 常量生成器
常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。下面是来自time包的例子,它首先定义了一个Weekday命名类型,然后为一周的每天定义了一个常量,从周日0开始。随着iota的递增,每个常量对应表达式1原创 2022-09-16 21:16:21 · 224 阅读 · 0 评论 -
Go语言复数类型
用于遍历1024x1024图像每个点的两个嵌套的循环对应-2到+2区间的复数平面。如果超过了,通过根据预设置的逃逸迭代次数对应的灰度颜色来代替。在常量算术规则下,一个复数常量可以加到另一个普通数值常量(整数或浮点数、实部或虚部),我们可以用自然的方式书写复数,就像1+2i或与之等价的写法2i+1。只有两个复数的实部和虚部都相等的时候它们才是相等的(译注:浮点数的相等比较是危险的,需要特别小心处理精度问题)。math/cmplx包提供了复数处理的许多函数,例如求复数的平方根函数和求幂函数。原创 2022-09-16 21:15:35 · 312 阅读 · 0 评论 -
GoUTF-8编码
没有任何字符的编码是其它字符编码的子串,或是其它编码序列的字串,因此搜索一个字符时只要搜索它的字节编码序列即可,不用担心前后的上下文会对搜索结果产生干扰。如果第一个字节的高端bit为0,则表示对应7bit的ASCII字符,ASCII字符每个字符依然是一个字节,和传统的ASCII编码兼容。unicode包提供了诸多处理rune字符相关功能的函数(比如区分字母和数字,或者是字母的大写和小写转换等),unicode/utf8包则提供了用于rune字符序列的UTF8编码和解码的功能。每一个对应码点的UTF8编码。原创 2022-09-13 13:08:32 · 1110 阅读 · 0 评论 -
Go字符串和Byte切片
strings包也有类似的函数,它们是ToUpper和ToLower,将原始字符串的每个字符都做相应的转换,然后返回新的字符串。从概念上讲,一个[]byte(s)转换是分配了一个新的字节数组用于保存字符串数据的拷贝,然后引用这个底层的字节数组。bytes.Buffer类型有着很多实用的功能,我们在第七章讨论接口时将会涉及到,我们将看看如何将它用作一个I/O的输入和输出对象,例如当做Fprintf的io.Writer输出对象,或者当作io.Reader类型的输入源对象。输入comma函数的参数是一个字符串。原创 2022-09-13 13:06:51 · 703 阅读 · 0 评论 -
Go字符串和Byte切片
strings包也有类似的函数,它们是ToUpper和ToLower,将原始字符串的每个字符都做相应的转换,然后返回新的字符串。从概念上讲,一个[]byte(s)转换是分配了一个新的字节数组用于保存字符串数据的拷贝,然后引用这个底层的字节数组。bytes.Buffer类型有着很多实用的功能,我们在第七章讨论接口时将会涉及到,我们将看看如何将它用作一个I/O的输入和输出对象,例如当做Fprintf的io.Writer输出对象,或者当作io.Reader类型的输入源对象。输入comma函数的参数是一个字符串。原创 2022-09-13 13:06:19 · 472 阅读 · 0 评论 -
Go语言浮点数
math包中除了提供大量常用的数学函数外,还提供了IEEE754浮点数标准中定义的特殊值的创建和测试:正无穷大和负无穷大,分别用于表示太大溢出的数字和除零的结果;它是带有两个参数的z = f(x, y)函数的三维形式,使用了可缩放矢量图形(SVG)格式输出,SVG是一个用于矢量线绘制的XML标准。用Printf函数的%g参数打印浮点数,将采用更紧凑的表示形式打印,并提供足够的精度,但是对应表格的数据,使用%e(带指数)或%f的形式打印可能更合适。所有的这三个打印形式都可以指定打印的宽度和控制打印精度。原创 2022-09-13 13:05:46 · 278 阅读 · 0 评论 -
Go语言的数值类型
尽管Go语言提供了无符号数的运算,但即使数值本身不可能出现负数,我们还是倾向于使用有符号的int类型,就像数组的长度那样,虽然使用uint无符号类型似乎是一个更合理的选择。超出的高位的bit位部分将被丢弃。左移运算用零填充右边空缺的bit位,无符号数的右移运算也是用0填充左边空缺的bit位,但是有符号数的右移运算会用符号位的值填充左边空缺的bit位。其中int和int32也是不同的类型,即使int的大小也是32bit,在需要将int当作int32类型的地方需要一个显式的类型转换操作,反之亦然。原创 2022-09-13 13:04:27 · 292 阅读 · 0 评论 -
GO包的初始化
它使用init初始化函数来生成辅助表格pc,pc表格用于处理每个8bit宽度的数字含二进制的1bit的bit个数,这样的话在处理64bit宽度的数字时就没有必要循环64次,只需要8次查表就可以了。(这并不是最快的统计1bit数目的算法,但是它可以方便演示init函数的用法,并且演示了如何预生成辅助表格,这是编程中常用的技术)。对于在包级别声明的变量,如果有初始化表达式则用表达式初始化,还有一些没有初始化表达式的,例如某些表格数据初始化并不是一个简单的赋值过程。用于将x的最低的一个非零的bit位清零。原创 2022-09-13 13:03:44 · 335 阅读 · 0 评论 -
Go类型type
数值类型之间的转型也是允许的,并且在字符串和一些特定类型的slice之间也是可以转换的,在下一章我们会看到这样的例子。这类转换可能改变值的表现。变量或表达式的类型定义了对应存储值的属性特征,例如数值在内存的存储大小(或者是元素的bit个数),它们在内部是如何表达的,是否支持一些操作符,以及它们自己关联的方法集等。新命名的类型提供了一个方法,用来分隔不同概念的类型,这样即使它们底层类型相同也是不兼容的。也可以用来比较一个命名类型的变量和另一个有相同类型的变量,或有着相同底层类型的未命名类型的值之间做比较。原创 2022-09-13 13:02:40 · 444 阅读 · 0 评论 -
Go函数指针
指针特别有价值的地方在于我们可以不用名字而访问一个变量,但是这是一把双刃剑:要找到一个变量的所有访问者并不容易,我们必须知道变量全部的别名(译注:这是Go语言的垃圾回收器所做的工作)。所有这些表达式一般都是读取一个变量的值,除非它们是出现在赋值语句的左边,这种时候是给对应变量赋予一个新的值。如果用“var x int”声明语句声明一个x变量,那么&x表达式(取x变量的内存地址)将产生一个指向该整数变量的指针,指针对应的数据类型是。表达式读取指针指向的变量的值,这里为int类型的值,同时因为。原创 2022-09-13 13:01:36 · 905 阅读 · 0 评论 -
Go函数声明
包声明语句之后是import语句导入依赖的其它包,然后是包一级的类型、变量、常量、函数的声明语句,包一级的各种类型的声明语句的顺序无关紧要(译注:函数内部的名字则必须先声明之后才能使用)。一个函数的声明由一个函数名字、参数列表(由函数的调用者提供参数变量的具体值)、一个可选的返回值列表和包含函数定义的函数体组成。其中常量boilingF是在包一级范围声明语句声明的,然后f和c两个变量是在main函数内部声明的声明语句声明的。相比之下,局部声明的名字就只能在函数内部很小的范围被访问。原创 2022-09-13 13:00:32 · 496 阅读 · 0 评论 -
Go语言中的命名
包级函数名本身也是包级名字),那么它将是导出的,也就是说可以被外部的包访问,例如fmt包的Printf函数就是导出的,可以在fmt包外部访问。Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。名字的长度没有逻辑限制,但是Go语言的风格是尽量使用短小的名字,对于局部变量尤其是这样;通常来说,如果一个名字的作用域比较大,生命周期也比较长,那么用长的名字将会更有意义。原创 2022-09-13 12:59:48 · 281 阅读 · 0 评论 -
Go命令行参数
和大多数编程语言类似,区间索引时,Go语言里也采用左闭右开形式,即,区间包括第一个索引元素,不包括最后一个,因为这样可以简化逻辑。第一种形式,是一条短变量声明,最简洁,但只能用在函数内部,而不能用于包变量。第四种形式显式地标明变量的类型,当变量类型与初值类型相同时,类型冗余,但如果两者类型不同,变量类型就必须了。(slice)(译注:slice和Python语言中的切片类似,是一个简版的动态数组),切片是Go语言的基础概念,稍后详细介绍。(zero value),数值类型是0,字符串类型是空字符串""。原创 2022-09-10 22:44:06 · 1671 阅读 · 0 评论 -
Go 查找重复的行
的迭代顺序并不确定,从实践来看,该顺序随机,每次运行都会变化。对文件做拷贝、打印、搜索、排序、统计或类似事情的程序都有一个差不多的程序结构:一个处理输入的循环,在每个元素上执行计算处理,在处理的同时或最后产生输出。存储了键/值(key/value)的集合,对集合元素,提供常数时间的存、取或测试操作。为了使示例代码保持合理的大小,本书开始的一些示例有意简化了错误处理,显而易见的是,应该检查。作为参数传递给某函数时,该函数接收这个引用的一份拷贝(copy,或译为副本),被调用函数对。命令,其寻找相邻的重复行。原创 2022-09-10 22:43:26 · 337 阅读 · 0 评论 -
Hello, World
这个命令生成一个名为helloworld的可执行的二进制文件(译注:Windows系统下生成的可执行文件是helloworld.exe,增加了.exe后缀名),之后你可以随时运行它(译注:在Windows系统下在命令行直接输入helloworld.exe命令运行),不需任何处理(译注:因为静态编译,所以不用担心在系统库更新的时候冲突,幸福感满满)。以法令方式规定标准的代码格式可以避免无尽的无意义的琐碎争执(译注:也导致了Go语言的TIOBE排名较低,因为缺少撕逼的话题)。最简单的一个子命令就是run。原创 2022-09-10 22:42:17 · 138 阅读 · 0 评论 -
Go语言项目
Go语言的动态栈使得轻量级线程goroutine的初始栈可以很小,因此,创建一个goroutine的代价很小,创建百万级的goroutine完全是可行的。Go语言的标准库(通常被称为语言自带的电池),提供了清晰的构建模块和公共接口,包含I/O操作、文本处理、图像、密码学、网络和分布式应用程序等,并支持许多标准化的文件格式和编解码协议。库和工具使用了大量的约定来减少额外的配置和解释,从而最终简化程序的逻辑,而且,每个Go程序结构都是如此的相似,因此,Go程序也很容易学习。所说的“概念完整性”;原创 2022-09-10 22:41:07 · 474 阅读 · 0 评论 -
ch0-01
比如Go语言的切片为动态数组提供了有效的随机存取的性能,这可能会让人联想到链表的底层的共享机制。所设计的[Pascal][Pascal]语言。第二代的[Oberon-2][Oberon-2]语言直接影响了包的导入和声明的语法,还有[Oberon][Oberon]语言的面向对象特性所提供的方法的声明语法等。编程语言的演化跟生物物种的演化类似,一个成功的编程语言的后代一般都会继承它们祖先的优点;,缩写为[CSP][CSP]。(老鼠间交流的语言),是一个提供鼠标和键盘事件处理的编程语言,它的管道是静态创建的。原创 2022-09-10 22:40:40 · 171 阅读 · 0 评论 -
3 分钟带你入门 Go 语言(保姆级教程)
Go 语言入门详细知识,主要和大家分享 Go 语言组成、Go 语言函数格式、C 语言对 Go 语言的几点对比。Go语言程序组成 和C语言程序一样,Go语言程序也是由众多函数组成的 和C语言程序一样,程序运行时系统会*自动调用名称叫做main的函数 和C语言程序一样,如果一个程序没有主函数,则这个程序不具备运行能力 和C语言程序一样,一个Go语言程序有且只能有一个主函数 Go语言程序主函数定义格式 C语言main函数格式 intmain(intarg..原创 2022-01-23 22:42:15 · 478 阅读 · 0 评论 -
Go语言关键字和标识符保姆级教程
欢迎大家来到『Go 语言入门到精通』这个专栏,今天是专栏第 6 篇,大叔主要和大家分享一下Go语言关键字和标识符。一个人走的太慢,一群人才能走的更远。关键字 Go语言中的关键字和C语言中的关键字的含义样, 是指被Go语言赋予特殊含义的单词 Go语言中关键字的特征和C语言也一样 全部都是小写 在开发工具中会显示特殊颜色 Go语言中关键字的注意点和C语言也一样 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等 .原创 2022-01-23 22:40:30 · 288 阅读 · 0 评论 -
Gin 实现上传/下载服务
本文就来看看Gin中的文件上传服务。创建项目mkdirginupload&&cdginuploadgomodinitginuploadgoget-ugithub.com/gin-gonic/gintouchmain.go我们创建一个ginupload的目录用来存放代码,并且使用go mod来管理依赖。接着通过go get把gin作为第三方依赖加入到项目中,然后创建了main.go用于写代码。单文件上传func...原创 2022-01-23 22:39:15 · 5790 阅读 · 0 评论 -
Go 第三方库strconv 推荐:类型转换如此简单
强类型语言有它的优势,但也有不便利的地方,最典型的就是类型转换。Golang 作为一门强类型语言,而且不支持隐式类型转换,因此这个问题更突出。虽然 Go 提供了不少方式进行类型转换,包括相关的标准库,比如 strconv 包。然而,strconv 包使用没那么方便,比如"8"转为 int 类型:s:="8"i,err:=strconv.Atoi(s)你必须对 err 进行处理,因为返回两个值,没法直接将结果传递给接收 int 参数的函数,使用不方便。今天给大家介绍一个第三...原创 2022-01-23 22:37:59 · 595 阅读 · 0 评论 -
Go安装第三方库
有时候很多功能,别人已经实现好了,我们就没有必要重复造轮子了,我们可以直接把别人已经实现好的功能拿来就用,这个时候也就需要我们安装第三方库了,通俗点讲就是把别人已经实现好的功能,拿过来用到我们的项目中。举个栗子1我们想实现一个 生成二维码的应用程序,这个时候怎么办?你第一想到的应该是别人是不是已经实现过这个功能了,而不是想到自己再造一个生成二维码的轮子(大佬除外...)我们可以去github上找关于这方面的轮子,然后通过 go get 轮子地址来安装它1我在github 上找到了一个go原创 2022-01-23 22:36:30 · 3146 阅读 · 3 评论 -
Go 每日一库之 dateparse
简介不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难。所以在程序中,涉及时间的处理我们一般借助于标准库或第三方提供的时间库。今天要介绍的dateparse专注于一个很小的时间处理领域——解析日期时间格式的字符串。快速使用本文代码使用 Go Modules。创建目录并初始化:$ mkdir dateparse && cd dateparse$ go mod init github.com/darj原创 2022-01-23 22:33:41 · 588 阅读 · 0 评论 -
Go 每日一库之 resty
简介resty是 Go 语言的一个 HTTP client 库。resty功能强大,特性丰富。它支持几乎所有的 HTTP 方法(GET/POST/PUT/DELETE/OPTION/HEAD/PATCH等),并提供了简单易用的 API。快速使用本文代码使用 Go Modules。创建目录并初始化:$ mkdir resty && cd resty$ go mod init github.com/darjun/go-daily-lib/resty安装resty库:原创 2022-01-23 22:32:49 · 1563 阅读 · 0 评论 -
Go 切片相关面试题
这篇是关于go切片的一些问题和回答。go的切片基本上是代码中使用最多的一种数据结构了,使用这种数据结构有哪些要注意的点,这个是非常必要了解的东西。基本上,以前写的一篇博客 https://www.cnblogs.com/yjf512/p/9531282.html 就说的很清楚了。这里再深挖一些。问题:go的切片数据结构是什么样子的?切片是有可能在编译器就被内联的,而如果在编译器没有被内联,进入运行期,就是直接使用SliceHeader数据结构。typeSliceHeaderstruc...原创 2022-01-23 22:29:56 · 288 阅读 · 0 评论 -
Go写文件的几种姿势,你喜欢哪一种?
Go 对文件操作有很好的内置支持。使用该os包,您可以轻松地打开、读取、写入和关闭文件。在这个例子中,我们专注于将数据写入文件。我们向您展示如何以不同的方式写入文本和二进制数据 - 一次写入整个数据、一行一行的写入数据、在指定的bytes数组中写入、或以buffer方式写入数据。当前使用Go版本goversiongo1.16.5darwin/amd64一次将全部内容写入文件将数据写入文件的最快方法是使用该os.WriteFile()函数。它需要三个输入参数: 我们要写入的...原创 2022-01-23 22:24:07 · 985 阅读 · 0 评论 -
Go 需要枚举没?如何实现?
一个枚举(enum,enumerator的缩写),是一组命名的常量值。枚举是一个强大 的工具,让开发者可以创建复杂的常量集,而这些常量集有着有用的名称和简单且唯一的取值。在我们走远之前,我想提一下我最近启动了 Go Mastery,一门动手的 Golang 课程[1]。如果想要了解更多关于 Go 的信息,请尝试下该课程,现在让我们回到枚举上面。本文是 Go语言中文网组织的 GCTT 翻译,发布在 Go语言中文网公众号,转载请联系我们授权。语法示例在一个常量声明中,iota[2]关键字创建..原创 2022-01-23 22:23:06 · 361 阅读 · 0 评论 -
解决gin跨域问题
我们在做前后端分离的项目,时常会听到跨域问题。经常看到有人的文章标题写着:前端支持跨域,但显然也只是个噱头而已。跨域的概念,本人才疏学浅,就不多说了。大家有兴趣可以搜搜相关的介绍。????为什么来卷go由于Mdnice官方仓库已经很久没有维护了,个人的文章又多如牛毛,在没有目录和搜索功能,官方忽略文件夹相关issue的情况下,我决定自己做一个超级低配版的mdnice,虽然我厚颜无耻地叫它mdnice-plus。加之也觉得自己2年左右没复习go了,需要再练练go,所以后端打算用gin+gorm原创 2021-12-15 16:49:23 · 3511 阅读 · 1 评论 -
Golang Gin 实战(一)| 快速安装入门
Gin 是一个非常优秀的Golang Web Framework,它不光API友好,性能也非常高,并且设计简洁,便于入门。所以它(Gin)非常受欢迎,在Github上已经三万三千多个星星,也是我最喜欢的Web 框架。入门要求要想使用Golang Gin这个框架,你必须要得会Golang这门语言,如果你还没有开始学,我强烈推荐给你,这门高效、简洁的语言,号称21世纪的C,如果你以前是C/C++的开发者,那么恭喜你,你很快就会入门,即使你是PHP,Python等语言的开发者,那么入门Golang也只需要原创 2021-12-15 16:47:54 · 167 阅读 · 0 评论 -
教程:Go入门
在本教程中,将获得Go 编程的简要介绍 。在此过程中,你将: 安装 Go(如果你还没有的话)。 编写一些简单的“Hello, world”代码。 使用 go 命令运行您的代码。 使用 Go 包发现工具查找可以在您自己的代码中使用的包。 调用外部模块的函数。 注意:有关其他教程,请参考教程( https://golang.google.cn/doc/tutorial/index.html )先决条件 有一定的编程经验。这里的代码非常简单,但它原创 2021-12-15 16:45:16 · 803 阅读 · 0 评论 -
从零带你学习Go语言:26、 Go基础语法总结
从零带你学习Go语言:26、 Go基础语法总结原创 2021-05-05 10:28:36 · 147 阅读 · 0 评论 -
从零带你学习Go语言:25、 Go并发机制
Go程是由Go运行时管理的轻量级线程原创 2021-05-04 08:48:12 · 69 阅读 · 0 评论