
golang基础教程
文章平均质量分 70
荣~博客
这个作者很懒,什么都没留下…
展开
-
Golang教程第25篇(并发)
与传统的线程相比,Goroutine的创建和销毁代价要小得多,并且其调度是独立于线程的。总之,Go语言中的channel是一种强大的并发编程工具,它提供了简单而有效的机制来实现Goroutine之间的通信和同步。通道是一种用于在Goroutine之间传递数据的数据结构,它提供了一种安全的方式来实现Goroutine之间的通信。Go语言通过goroutine和channel提供了轻量级的并发编程模型,极大地简化了并发编程的复杂性,提高了程序的执行效率。使用make函数可以创建一个新的channel。原创 2024-12-02 10:35:52 · 882 阅读 · 0 评论 -
Golang教程第21篇(语言Map(集合))
可以使用内建函数 make 或使用 map 关键字来定义 Map:/* 使用 make 函数 */其中 KeyType 是键的类型,ValueType 是值的类型,initialCapacity 是可选的参数,用于指定 Map 的初始容量。Map 的容量是指 Map 中可以保存的键值对的数量,当 Map 中的键值对数量达到容量时,Map 会自动扩容。如果不指定 initialCapacity,Go 语言会根据实际情况选择一个合适的值。实例。原创 2024-12-02 09:50:10 · 260 阅读 · 0 评论 -
Golang教程第24篇(语言接口)
接口定义使用关键字 interface,其中包含方法声明。实例/* 定义接口 */.../* 定义结构体 *//* 实现接口方法 *//* 方法实现 */.../* 方法实现*/Shape 是一个接口,定义了两个方法:Area 和 Perimeter。任意类型只要实现了这两个方法,就被认为实现了 Shape 接口。实现接口: 类型通过实现接口要求的所有方法来实现接口。实例import ("fmt""math"// 定义接口// 定义一个结构体。原创 2024-12-02 09:51:05 · 978 阅读 · 0 评论 -
Golang教程第23篇(语言类型转换)
然后,我们使用类型断言将 i 转换为字符串类型,并将转换后的值赋值给变量 str。否则,我们打印转换失败的消息。,strconv.Atoi 函数返回两个值,第一个是转换后的整型值,第二个是可能发生的错误,我们可以使用空白标识符 _ 来忽略这个错误。在这个例子中,printValue 函数接受一个空接口类型的参数,并使用类型断言和类型选择来处理不同的类型。在类型转换中,我们必须保证要转换的值和目标接口类型之间是兼容的,否则编译器会报错。如果类型断言成功,它将返回转换后的值和一个布尔值,表示转换是否成功。原创 2024-12-02 09:50:44 · 309 阅读 · 0 评论 -
Golang教程第22篇(语言递归函数)
在 sqrt 函数中,我们调用 sqrtRecursive 来计算平方根,并传入初始值和精度要求,然后在 main 函数中,我们调用 sqrt 函数来求解平方根,并将结果打印出来。递归的终止条件是当前猜测的平方根与上一次猜测的平方根非常接近,差值小于给定的精度 epsilon。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。以上实例中,sqrtRecursive 函数使用递归方式实现平方根的计算。原创 2024-12-02 09:50:26 · 234 阅读 · 0 评论 -
Golang教程第20篇(语言范围(Range))
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。range 迭代字符串时,返回每个字符的索引和 Unicode 代码点(rune)。以上代码中的 key 和 value 是可以省略。range 遍历从通道接收的值,直到通道关闭。原创 2024-12-02 09:49:52 · 312 阅读 · 0 评论 -
Golang教程第19篇(语言切片(Slice))
切片不需要说明长度。也可以简写为也可以指定容量,其中 capacity 为可选参数。这里 len 是数组的长度并且也是切片的初始长度。切片初始化直接初始化切片,[] 表示是切片类型,{1,2,3} 初始化值依次是 1,2,3,其 cap=len=3。初始化切片 s,是数组 arr 的引用。将 arr 中从下标 startIndex 到 endIndex-1 下的元素创建为一个新的切片。默认 endIndex 时将表示一直到arr的最后一个元素。原创 2024-12-02 09:49:29 · 321 阅读 · 0 评论 -
Golang教程第18篇(语言结构体)
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。或实例如下:实例// 创建一个新的结构体fmt.Println(Books{"Go 语言", "www.runoob.com", "Go 语言教程", 6495407})// 也可以使用 key => value 格式。原创 2024-12-02 09:49:13 · 312 阅读 · 0 评论 -
Golang教程第17篇(语言指针)
一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前你需要声明指针。var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。var ip *int /* 指向整型*/var fp *float32 /* 指向浮点型 */本例中这是一个指向 int 和 float32 的指针。原创 2024-12-02 09:20:47 · 276 阅读 · 0 评论 -
Golang教程第16篇(语言数组)
以下实例声明一个名为 numbers 的整数数组,其大小为 5,在声明时,数组中的每个元素都会根据其数据类型进行默认初始化,对于整数类型,初始值为 0。数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推。:在 Go 语言中,数组的大小是类型的一部分,因此不同大小的数组是不兼容的,也就是说 [5]int 和 [10]int 是不同的类型。其中,arrayName 是数组的名称,size 是数组的大小,dataType 是数组中元素的数据类型。原创 2024-12-02 09:18:29 · 1913 阅读 · 0 评论 -
Golang教程第15篇(语言变量作用域)
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。接下来让我们具体了解局部变量、全局变量和形式参数。形式参数会作为函数的局部变量来使用。结果: g = 10。原创 2024-12-02 09:18:10 · 271 阅读 · 0 评论 -
Golang教程第14篇(语言函数)
例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。默认情况下,Go 语言使用的是值传递,即在调用过程中不会影响到实际参数。当创建函数时,你定义了函数需要做什么,通过调用该函数来执行指定任务。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。函数如果使用参数,该变量可称为函数的形参。函数是基本的代码块,用于执行一个任务。最大值是 : 200。原创 2024-12-01 09:35:15 · 259 阅读 · 0 评论 -
Golang教程第13篇(语言循环语句-goto 语句)
但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。Go 语言的 goto 语句可以无条件地转移到过程中指定的行。Go 语言循环语句Go 语言循环语句。原创 2024-12-01 09:34:45 · 333 阅读 · 0 评论 -
Golang教程第12篇(语言循环语句-continue 语句)
Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。for 循环中,执行 continue 语句会触发 for 增量语句的执行。在多重循环中,可以用标号 label 标出想 continue 的循环。Go 语言循环语句Go 语言循环语句。原创 2024-11-30 18:44:00 · 428 阅读 · 0 评论 -
Golang教程第11篇(语言循环语句-break 语句)
在 Go 语言中,break 语句在 select 语句中的应用是相对特殊的。由于 select 语句的特性,break 语句并不能直接用于跳出 select 语句本身,因为 select 语句是非阻塞的,它会一直等待所有的通信操作都准备就绪。在 Go 语言中,break 语句用于终止当前循环或者 switch 语句的执行,并跳出该循环或者 switch 语句的代码块。通过使用 return,我们可以在 select 语句中提前终止执行,并返回到调用者的代码中。break 语句可以用于以下几个方面:。原创 2024-11-30 18:42:41 · 364 阅读 · 0 评论 -
Golang教程第5篇(语言变量)
如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明,例如:a := 20 就是不被允许的,编译器会提示错误 no new variables on left side of :=,但是 a = 20 是可以的,因为这是给相同的变量赋予一个新的值。右边的这些值以相同的顺序赋值给左边的变量,所以 a 的值是 5, b 的值是 7,c 的值是 “abc”。一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置。原创 2024-11-30 15:43:02 · 942 阅读 · 0 评论 -
Golang教程第10篇(语言循环语句-语言循环嵌套)
Go 语言允许用户在循环内使用循环。接下来我们将为大家介绍嵌套循环的使用。Go 语言循环语句Go 语言循环语句。原创 2024-11-30 15:42:27 · 205 阅读 · 0 评论 -
Golang教程第9篇(语言循环语句-for 循环)
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。init 和 post 参数是可选的,我们可以直接省略它,类似 While 语句。Go 语言的 For 循环有 3 种形式,只有其中的一种使用分号。这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。for 循环是一个循环控制结构,可以执行指定次数的循环。以上代码中的 key 和 value 是可以省略。要停止无限循环,可以在命令窗口按下ctrl-c。Go 语言循环语句Go 语言循环语句。原创 2024-11-30 15:42:03 · 509 阅读 · 0 评论 -
Golang教程第8篇(语言条件语句)
在 main 函数中,我们使用 select 语句在这两个通道中进行非阻塞的选择,如果两个通道都没有可用的数据,就执行 default 子句中的语句。条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则执行 else 语句块。原创 2024-11-30 15:41:39 · 1013 阅读 · 0 评论 -
Golang教程第7篇(语言运算符)
有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。下表列出了所有Go语言的关系运算符。假定 A 值为 10,B 值为 20。Go 语言支持的位运算符如下表所示。当然,你可以通过使用括号来临时提升某个表达式的整体运算优先级。接下来让我们来详细看看各个运算符的介绍。下表列出了所有Go语言的赋值运算符。下表列出了Go语言的其他运算符。原创 2024-11-30 15:41:12 · 977 阅读 · 0 评论 -
Golang教程第6篇(语言常量)
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。iota 表示从 0 开始自动加 1,所以 i=1<<0, j=3<<1(<< 表示左移的意思),即:i=1, j=6,这没问题,关键在 k 和 l,从输出结果看 k=3<<2,l=3<<3。iota,特殊常量,可以认为是一个可以被编译器修改的常量。j=3:左移 1 位,变为二进制 110,即 6。原创 2024-11-30 15:40:44 · 325 阅读 · 0 评论 -
Golang教程第4篇(语言数据类型)
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 也有基于架构的类型,例如:int、uint 和 uintptr。在 Go 编程语言中,数据类型用于声明函数和变量。原创 2024-11-30 15:40:21 · 512 阅读 · 0 评论 -
Golang教程第3篇(语言基础语法)
单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性。在函数调用时,函数名和左边等号之间要使用空格,参数之间也要使用空格。程序一般由关键字、常量、变量、运算符、类型和函数组成。原创 2024-11-30 15:39:55 · 813 阅读 · 0 评论 -
Golang教程第2篇(语言结构)
在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。原创 2024-11-30 15:39:26 · 634 阅读 · 0 评论 -
Golang教程第1篇(语言教程)
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。hello.go 文件。原创 2024-11-30 15:38:56 · 167 阅读 · 0 评论