首页 文章

    [结构体]-第001节:结构体的初步使用

    ### 1.1 什么是结构体 --- Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 ### 1.2 结构体的定义和初始化 --- ```golang type struct_variable_type struct { member definition; member definition; ... member definition; } ``` 一旦定义了结构体类型,它就能用于变量的声

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [结构体]-第002节:结构体指针

    指针指向一个结构体 也可以创建指向结构的指针。 ### 结构体指针 ``` var struct_pointer *Books ``` 以上定义的指针变量可以存储结构体变量的地址。查看结构体变量地址,可以将 & 符号放置于结构体变量前 ``` struct_pointer = &Book1; ``` 使用结构体指针访问结构体成员,使用 "." 操作符 ``` struct_pointer.title; ``` ``` package main import "fmt" type Books st

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [结构体]-第003节:结构体的嵌套

    ### 1.1 结构体的匿名字段 --- #### 结构体的匿名字段 --- 可以用字段来创建结构,这些字段只包含一个没有字段名的类型。这些字段被称为匿名字段。 在类型中,使用不写字段名的方式,使用另一个类型 ``` type Human struct { name string age int weight int } type Student struct { Human // 匿名字段,那么默认Student就包含了Human的所有字段 speciality string } func m

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [结构体]-第004节:导出结构体和字段

    如果结构体类型以大写字母开头,那么它是一个导出类型,可以从其他包访问它。类似地,如果结构体的字段以大写开头,则可以从其他包访问它们。 示例代码: ### 1.在computer目录下,创建文件spec.go --- ``` package computer type Spec struct { //exported struct Maker string //exported field model string //unexported field Price int //exported f

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [结构体]-第005节:结构体是值类型

    ### 结构体比较 --- 结构体是值类型,如果每个字段具有可比性,则是可比较的。如果它们对应的字段相等,则认为两个结构体变量是相等的。 示例代码: ``` package main import ( "fmt" ) type name struct { firstName string lastName string } func main() { name1 := name{"Steve", "Jobs"} name2 := name{"Steve", "Jobs"} if name1 ==

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [结构体]-第006节:结构体作为函数的参数

    结构体作为函数参数使用 ``` ackage main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* 声明 Book1 为 Books 类型 */ var Book2 Books /* 声明 Book2 为 Books 类型 */ /* book 1 描述 */ Book1.title = "Go 语

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [方法]-第001节:方法

    ### 1.1 什么是方法 --- Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集 方法只是一个函数,它带有一个特殊的接收器类型,它是在func关键字和方法名之间编写的。接收器可以是struct类型或非struct类型。接收方可以在方法内部访问。 方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接收

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [方法]-第002节:方法和函数

    既然我们已经有了函数,为什么还要使用方法? 示例代码: ``` package main import ( "fmt" ) type Employee struct { name string salary int currency string } /* displaySalary() method converted to function with Employee as parameter */ func displaySalary(e Employee) { fmt.Printf("S

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [方法]-第003节:变量作用域

    作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明: * 函数内定义的变量称为局部变量 * 函数外定义的变量称为全局变量 * 函数定义中的变量称为形式参数 ### 局部变量 在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。 ### 全局变量 在函数体外声明的变量称之为全局变量,首字母大写全局变量可以在整个包甚至外部包(被导出后)使用。 ``` package main import "fmt

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [方法]-第004节:”继承”中的方法

    ### 1.1 method继承 --- method是可以继承的,如果匿名字段实现了一个method,那么包含这个匿名字段的struct也能调用该method ``` package main import "fmt" type Human struct { name string age int phone string } type Student struct { Human //匿名字段 school string } type Employee struct { Human //匿名

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [接口]-第001节:接口的使用

    ### 1.1 什么是接口? --- 面向对象世界中的接口的一般定义是“接口定义对象的行为”。它表示让指定对象应该做什么。实现这种行为的方法(实现细节)是针对对象的。 在Go中,接口是一组方法签名。当类型为接口中的所有方法提供定义时,它被称为实现接口。它与OOP非常相似。接口指定了类型应该具有的方法,类型决定了如何实现这些方法。 > 它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口 > 接口定义了一组方法,如果某个对象实现了某个接口的所有方法,则此对象就实现了

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [接口]-第002节:接口的类型和断言

    ### 1.1 接口的类型 --- ### 接口与鸭子类型: 先直接来看维基百科里的定义: >If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. 翻译过来就是:如果某个东西长得像鸭子,像鸭子一样游泳,像鸭子一样嘎嘎叫,那它就可以被看成是一只鸭子。 Duck Typing,鸭子类型,是动态编程语言的一种对象推断策略,它更关注对象能如何被使用,而不是对象的类型本

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [接口]-第003节:type关键字

    type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。 ## 一、类型定义 --- ### 1.1 定义结构体 --- 使用type 可以定义结构体类型: ``` //1、定义结构体 //结构体定义 type person struct { name string //注意后面不能有逗号 age int }COPY ``` ### 1.2 定义接口 ---

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [错误]-第001节:什么是错误

    在实际工程项目中,我们希望通过程序的错误信息快速定位问题,但是又不喜欢错误处理代码写的冗余而又啰嗦。Go语言没有提供像Java、C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛。这种设计,鼓励工程师在代码中显式的检查错误,而非忽略错误,好处就是避免漏掉本应处理的错误。但是带来一个弊端,让代码啰嗦。 ### 1.1 什么是错误 ---- 错误是什么? 错误指的是可能出现问题的地方出现了问题。比如打开一个文件时失败,这种情况在人们的意料之中 。 而异常指的是不应该出现问题

    作者:RainNight 2021-03-21 所属分类:[Golang]

    [函数]-第002节:错误类型表示

    Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 让我们再深入一点,看看如何定义错误类型的构建。错误是一个带有以下定义的接口类型, ``` type error interface { Error() string } ``` 它包含一个带有Error()字符串的方法。任何实现这个接口的类型都可以作为一个错误使用。这个方法提供了对错误的描述。 当打印错误时,fmt.Println函数在内部调用Error() 方法来获取错误的描述。这就是错误描述是如何在一行中打印出来的。 ### 从错误

    作者:RainNight 2021-03-21 所属分类:[Golang]

网盘推荐

微信公众号

书籍标签