
Go语言
文章平均质量分 84
南歌EuanSu
且将新火试新茶,诗酒趁年华。
展开
-
【Go语言】Go语言的占位符
Golang的字符串占位符在fmt包的各种打印函数中使用,如fmt.Printf。原创 2024-07-08 14:40:21 · 757 阅读 · 0 评论 -
【Go语言】Gin 框架教程
开头,通过分组路由就能够简化路由的定义,也可以更好的实现路由的权限控制,例如将需要登录的路由放到同一分组中。这里使用一个表单参数进行举例,如下所示,输入分数转化为及格、不及格的判断,代码如下所示。请求其他的路由,则不受影响,就如我们在中间件方法所写的判断一样,仅仅只是拦截了。分组路由主要是为了处理路由前缀一致的情况,例如有一组路由前缀都是。程序,重启之后,再次访问路由地址,就能够正常解析路由参数了。与上文的路由参数一样,参数都是路由的一部分,不同的是。请求不同的路由地址,均能够得到正常的响应。原创 2024-06-16 15:37:05 · 4367 阅读 · 2 评论 -
【Go语言】Go语言中的接口类型
Go语言提倡面向接口编程。接口是一个或多个方法签名的集合。任何类型的方法集中只要拥有该接口'对应的全部方法'签名。就表示它 "实现" 了该接口,无须在该类型上显式声明实现了哪个接口。这称为Structural Typing。所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还可以有其他方法。接口只有方法声明,没有实现,没有数据字段。接口可以匿名嵌入其他接口,或嵌入到结构中。原创 2024-06-14 12:49:16 · 1441 阅读 · 1 评论 -
【Go语言】面向对象编程(二):通过组合实现类的继承和方法重写
的方式间接实现类似的功能,所谓组合,就是将一个类型嵌入到另一个类型,从而构建新的类型结构。类的定义及其内部数据的定义可以看作是类的属性,基于类定义的函数方法则是类的成员方法。要实现面向对象的编程,就必须实现面向对象编程的三大特性:封装、继承和多态。Go 语言中,没有直接提供继承相关的语法实现,可以通过。需要注意组合的不同类型之间包含同名方法,比如。没有重写该方法,直接在。类的属性和成员方法。原创 2024-06-11 16:25:35 · 685 阅读 · 0 评论 -
【Go语言】面向对象编程(一):类的定义、初始化和成员方法
Go 语言的面向对象编程没有classextendsimplements类名为Student,并且包含了idnamemalescore这四个属性。相应的,Go 语言中也不支持构造函数、析构函数,需要我们自定义形如Newxxx// 初始化方法(全量定义)在如上函数中,通过传入NewStudent方法的字段对Student类进行初始化,并返回一个指向该类的指针。// 初始化方法(部分定义)在main// 类的初始化。原创 2024-06-11 14:03:25 · 784 阅读 · 0 评论 -
【Go语言】Go语言中的函数
Go语言默认使用按值传参来传递参数,也就是传递参数值的一个副本,函数收到传递进来的参数后,会将参数值拷贝给声明该参数的变量(也叫做形式参数,简称形参),如果在函数体中有对参数值做修改,实际上修改的是形参值,这不会影响到实际传递进来的参数值(也叫实际参数,简称实参)。如果需要实现在函数中修改形参值的同时改变实参,需要引用传参来实现,此时传递给函数的参数是一个指针,而指针代表的是实参的内存地址,修改指针引用的值即修改变量内存地址中存储的值,因此实参的值也会被修改。指引用了外部函数作用域中的变量的函数。原创 2024-03-15 15:07:30 · 2471 阅读 · 0 评论 -
【Go语言】Go语言中的流程控制
流程控制主要用于设定计算执行的顺序,简历程序的逻辑结果,Go语言的流程控制语句与其他语言类似,支持如下几种流程控制语句:条件语句:用于条件判断,对应的关键字有if、else和else if;分支语句:用于分支选择,对应的关键字有switch、case和select(用于通道);循环语句:用于循环迭代,对应的关键字有for和range;跳转语句:用于代码跳转,对应的关键字有goto。原创 2024-03-01 15:04:45 · 1060 阅读 · 0 评论 -
【Go语言】Go语言中的字典
字典就是存储键值对映射关系的集合,在Go语言中,需要在声明时指定键和值的类型,此外Go语言中的字典是个无序集合,底层不会按照元素添加顺序维护元素的存储顺序。注:字典初始化之后才能进行赋值操作,如果仅仅是声明,此时字典的值为 nil, 在nil 上进行操作,编译时会报panic,导致编译不通过。Go语言中的字典是个无序集合,如果想要对字典进行排序,可以通过分别为字典的键或值创建切片,然后通过对切片进行排序实现。打印字典testMap,发现其并没有按照存储的顺序进行打印,这是因为Go语言中字典是个无序集合。原创 2024-02-28 23:50:18 · 1232 阅读 · 0 评论 -
【Go语言】Go语言中的指针
变量的本质是对一块内存空间的命名,我们可以通过引用变量名来使用这块内存空间存储的值,而指针则是用来指向这些变量值所在内存地址的值。注:变量值所在内存地址的值不等于该内存地址存储的变量值。Go语言中,如果一个变量是指针类型的,可以用这个变量来存储指针类型的值。原创 2024-02-28 23:51:10 · 1570 阅读 · 0 评论 -
【Go语言】Go语言中的切片
因此,Go语言中的切片是一个可变长度的、同一类型元素集合,切片的长度可以随着元素数量的增长而增长,但不会随着元素数量的减少而减少,但切片底层依然使用数组来管理元素,可以看作是对数组做了一层简单的封装。切片与数组相比,优势在于支持动态增加元素,甚至能够在容量不足的情况,在切片类型中,元素个数和实际可分配的存储空间是两个不同的值,元素的个数即切片的实际长度,而可分配的存储空间就是切片的容量。切片可以基于一个已存在的数组创建,切片可以只使用数组的一部分元素或者全部元素,甚至可以创建一个比数组更大的切片。原创 2024-02-27 15:15:54 · 2697 阅读 · 0 评论 -
【Go语言】Go语言中的数组
Go语言中的数组类型遍历一旦声明后长度就不能再变,这样就无法动态添加元素到数组中,如果要添加一个元素到数组中,需要将就数组的元素都拷贝过来,最后添加新的元素,如果数组的长度不能确定,我们设置了一个较多元素的数组,这就会影响到程序的性能。数组是值类型,将数组作为参数传递到函数时,传递的是数组的值拷贝,也即会先将数组拷贝到形参,函数体中引用的是形参而不是原来的数组,当我们在函数中对数组元素进行修改的时候,并不会影响原来数组的值,如果数组很大时,值拷贝也会影响到程序的性能。原创 2024-02-27 15:05:19 · 994 阅读 · 0 评论 -
【Go语言】Go语言的数据类型
Go 语言内置对以下这些基本数据类型的支持:布尔类型:bool整型:int8、byte、int16、int、uint、uintptr 等浮点类型:float32、float64复数类型:complex64、complex128字符串:string字符类型:rune错误类型:errorGO 语言也支持以下复合类型:指针(pointer)数组(array)切片(slice)字典(map)通道(chan)结构体(struct)接口(interface)原创 2024-02-19 23:22:49 · 2285 阅读 · 1 评论 -
【Go语言】Go语言中的变量和常量
通过constconst zero = 0.0 // 无类型浮点常量const ( // 通过一个 const 关键字定义多个常量,和 var 类似eof = -1 // 无类型整型常量const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值const a, b, c = 3, 4, "foo" // a = 3, b = 4, c = "foo", 无类型整型和字符串常量代码执行测试:return 100。原创 2024-02-19 23:23:00 · 1622 阅读 · 0 评论 -
【Go语言】第一个Go程序
提供了安装包以及引导流程。,选择要下载的 msi 格式的安装包。下载后,按照引导执行即可,出现如下所示,说明go语言安装完成。安装完成后,打开windows终端,输入 go version,出现安装的go语言版本信息,安装成功。原创 2024-02-15 20:01:08 · 1504 阅读 · 0 评论 -
【Go语言】Go项目工程管理
Go 1.11 版本开始,官方提供了 Go Modules 进行项目管理,Go 1.13开始,Go项目默认使用 Go Modules 进行项目管理。使用 Go Modules的好处时不再需要依赖 GOPATH,可以在任意位置进行 Go 项目的创建,还能够通过 GOPROXY 配置镜像源,解决 Go 语言依赖下载慢的问题。原创 2024-02-15 20:00:44 · 1706 阅读 · 0 评论