登录
专栏 4 关注 16 篇文章
Go语言基础
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了I
lisgroup
关注专栏
推荐文章
举报
3 年前  /  lisgroup

九、Go语言的空接口和类型断言

空接口空接口中没有任何方法。任意类型都可以实现该接口。空接口这样定义:interface{},也就是包含0个方法(method)的interface。空接口可表示任意数据类型,类似于Java中的object。空接口常用于以下情形。println的参数就是空接口。定义一个map:key是string,value是任意数据类型。定义一个切片,其中存储任意类型的数据。使用方法:package mainimport "fmt"type A interface {}type Man struct {

0 赞 0 评论
收藏
3 年前  /  lisgroup

八、Go语言面向对象编程(3)接口的应用

1. 接口的概念面向对象语言中,接口用于定义对象的行为。接口只指定对象应该做什么,实现这种行为的方式(实现细节)由对象来决定。在Go语言中,接口是一组方法签名。接口指定了类型应该具有的方法,类型决定了如何实现这些方法。当某个类型为接口中的所有方法提供了具体的实现细节时,这个类型就被称为实现了该接口。接口定义了一组方法,如果某个对象实现了该接口的所有方法,则此对象就实现了该接口。Go语言的类型都是隐式实现接口的。任何定义了接口中所有方法的类型都被称为隐式地实现了该接口。2. 定义与实现定义接口的语

0 赞 0 评论
收藏
3 年前  /  lisgroup

八、Go语言面向对象编程(4)多态

1. 相关概念如果有几个相似而不完全相同的对象,有时人们要求在向它们发出同一个消息时,它们的反应各不相同,分别执行不同的操作。这种情况就是多态现象。例如,甲、乙、丙三个班都是初中一年级,学生们有基本相同的属性和行为,在同时听到上课铃声的时候,他们会分别走向三个不同的教室,而不会走向同一个教室。多态就是事物的多种形态,Go语言中的多态性是在接口的帮助下实现的—定义接口类型,创建实现该接口的结构体对象。定义接口类型的对象,可以保存实现该接口的任何类型的值。Go语言接口变量的这个特性实现了Go语言中的

0 赞 0 评论
收藏
3 年前  /  lisgroup

八、Go语言面向对象编程(2)方法使用

1. 方法的概念函数(function)是一段具有独立功能的代码,可以被反复多次调用,从而实现代码复用。而方法(method)是一个类的行为功能,只有该类的对象才能调用。方法有接受者,而函数无接受者Go语言的方法(method)是一种作用于特定类型变量的函数。这种特定类型变量叫作接受者(receiver)。接受者的概念类似于传统面向对象语言中的this或self关键字。Go语言的接受者强调了方法具有作用对象,而函数没有作用对象。一个方法就是一个包含了接受者的函数。函数不可以重名,而方法可以重名只

0 赞 0 评论
收藏
3 年前  /  lisgroup

八、Go语言面向对象编程(1)

1. Go语言的面向对象面向对象是一种对现实世界进行理解和抽象的方法。面向对象的程序设计(Object Oriented Programming),简称 OOP。传统面向对象的主要特点可以概括为封装、继承、多态。其他编程语言大多使用关键字“类”(class)来定义封装对象,表示该类的具体特征,然而Go并不是一个纯面向对象的编程语言。Go语言采用更灵活的“结构体”替代了“类”。Go语言并没有提供类(class),但是它提供了结构体(struct),方法(method)可以在结构体上添加。与类相似,

0 赞 0 评论
收藏
3 年前  /  lisgroup

七、函数(func)

函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。1. 参数与返回值一个典型的函数定义如下,使用关键字 func,参数可以有多个,返回值也支持有多个。特别地,package main 中的 func main() 约定为可执行程序的入口。func funcName(param1 Type1, param2 Type2, ...) (return1 Type

0 赞 0 评论
收藏
3 年前  /  lisgroup

六、流程控制-唯一循环语句(for)

唯一循环语句 forfor 循环是一个循环控制语句结构,可以用来执行指定次数的循环。其中 break 和 continue 的使用方法和其他语言类似。1. 和 C 语言一样的 forpackage mainimport "fmt"func main() { sum := 0 for i := 0; i < 10; i++ { sum += i if sum > 40 { break } } fmt.Print

0 赞 0 评论
收藏
3 年前  /  lisgroup

五、流程控制-条件语句(if switch select)

1. 条件语句 if else条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来判断是否执行某些语句,并在条件为 false 的情况下执行另外语句部分。package mainimport "fmt"func main() { /* 定义的局部变量 age */ var age = 10 /* 判断布尔表达式 */ if age < 20 { /* 如果满足条件即 true 执行的语句 */ fmt.Printf("age 小于

0 赞 0 评论
收藏
3 年前  /  lisgroup

四、Go 语言运算符

运算符用于在程序运行时执行逻辑运算。Go 语言的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符算术运算符常用的算数运算符有:+、-、*、/、%(取余)、++、--12 % 5 == 2 // 取整除的余数关系运算符常用的关系运算符有:>、=、 & &^4+ -3==!==2&&1||package mainimport "fmt"func main() { A, B, C, D := 30, 20, 10, 5 var E int E = (A + B)

1 赞 1 评论
收藏
3 年前  /  lisgroup

三、Go 语言变量类型(3)

字典(Map)Map 是一种无序的键值对的集合,类似于 java 的 HashMap,Python的字典(dict),是一种存储键值对(Key-Value)的数据解构。使用方式和其他语言几乎没有区别。。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。1.1 定义 Map可以使用内建函数 make 也可以使用 map 关键字

0 赞 0 评论
收藏