![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
go 语法 入门到中级
go 语法入门到中级
鞍-
这个作者很懒,什么都没留下…
展开
-
15、gorm基本使用
01、原创 2021-01-09 17:09:53 · 124 阅读 · 0 评论 -
14、结构体
01、自定义类型--使用内置的类型来定义一个自己的类型 --自定义类型使用%T打印出来后,类型名称--代码示例如下: func main(){ var m MyInt // 自定义类型 m = 100 fmt.Println("m值为:", m) // m值为: 100 fmt.Printf("%T %d\n", m, m) // main.MyInt 100 var n anotherInt // 给类型起别名原创 2020-12-25 12:26:04 · 108 阅读 · 3 评论 -
13、go文件读取 和 写入
01、golang打开文件读出一块文件数据,但是数据读不全--读取思路: --打开文件获取操作句柄 --读入一段数据打印 --defer 打开文件句柄之后,立即定义关闭函数 --不论是 os.Open() 还是 file.Read 函数。返回的都有err,需要对err判断是否被打开 对err判断是否读取完毕 --func Open(name string) (file *File, err error) --Open打开一个文件用于打开。返回对象为:原创 2020-12-24 21:15:35 · 263 阅读 · 0 评论 -
12、函数类型,变量,匿名函数,闭包[就是python闭包]
01、type关键字:用于定义函数类型--函数类型: --使用type关键字来定义一个函数类型,具体格式如下: type calculation func(int, int) int 注:上面语句定义了一个calculation类型,它是一种函数类型,这种函数接收两个int类型的参数并且返回一个int类型的返回值。 简单来说,凡是满足这个条件的函数都是calculation类型的函数,例如下面的add和sub是calculation类型。--代码示例原创 2020-12-13 23:58:27 · 121 阅读 · 0 评论 -
11、函数基础
01、函数定义 -- 有返回值--golang是强类型的语言,因此传参和返回时都需要定义参数类型· --定义示例: func 函数名(参数)(返回值){ 函数体 } --代码示例如下: func sum(x int, y int)(ret int){ // 返回值有返回名 和 返回类型 return x+y } func intSum(x int, y原创 2020-12-11 10:15:15 · 95 阅读 · 0 评论 -
10、map
01、map 定义--定义:map是一种w无序的基于key-value的数据结构,map是引用类型,必须初始化才能使用--形式: --map[KeyType]ValueType --KeyType:表示键的类型 --ValueType:表示键对应的值的类型--map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为: --make(map[KeyType]ValueType, [cap]) --其中cap表示map的原创 2020-11-04 22:25:21 · 250 阅读 · 1 评论 -
09、指针: new 和 make
01、指针:不同于c语言的指针可直接操作--go语言中指针只能 --取地址 以及 按照地址取值 --指针不能够直接操作取值,尽管牺牲了效率但是避免了溢出的问题--代码示例: // 1、取地址:& // 2、按照地址取值:* n := 18 p := &n fmt.Println(p) // 取出变量地址 fmt.Printf("%T\n", p) // *int 表示int类型的指针 // 按照地址取值 m := *p fmt.Pr原创 2020-11-03 23:16:46 · 113 阅读 · 0 评论 -
08、切片基础操作 和 append copy
01、切片的定义、操作、嵌套切片、引用类型证明--数组申明之后长度就不会再改变,但往往我们需要一个动态数组,长度固定的数组一般不使用--切片:拥有相同元素的可变长度存储容器--定义和操作的实例: // 切片定义的时[]中没有数字 var s1 []int var s2 []string fmt.Println(s1, s2) fmt.Println(s1 == nil) // 为空表示没有开辟内存空间 fmt.Println(s2 == nil) // 切片初始化赋值 s1原创 2020-11-02 13:28:05 · 222 阅读 · 0 评论 -
07、数组
01、定义 和 类型说明--数组定义: --存放元素的有容器 --必须指定存放的元素的类型和容量(长度),也就是说数组是复合类型其准确的类型 == 长度 + 数据类型 --数组类型 == 长度 + 数据类型--代码示例:这里主要是关于数组类型 和 如何获取变量类型演示 var a1 [3]bool // true true false var a2 [4]bool // true false true false // 打印变量类型 fmt.Printf(原创 2020-10-30 13:49:46 · 74 阅读 · 0 评论 -
05、流程控制
1、if [if--else] [if--else if--else] 等流程控制语句--if 的基本控制结构语法: if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else{ 分支3 }--if 形式1: --这种形式下,变量定义在if 外部 score := 65 if score >= 90 { fmt.Println("A") } else if sco.原创 2020-09-13 16:04:28 · 112 阅读 · 0 评论 -
04、字符串
1、字符串基本知识--go 语言中时使用 “” 表示字符串--定义的实例: s1 := "hello" s2 := "你好"--Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。 转义符 含义 \r 回车符(返回行首) \n 换行符(直接跳到下一行的同列位置) \t 制表符 \' 单引号 \" 双引号 \\ 反斜杠--代码示例: pack原创 2020-09-13 15:09:38 · 346 阅读 · 1 评论 -
03、基本数据类型
1、基本数据类型介绍--Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。2、整型数据--整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64 其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型--整型数据举例: 类型原创 2020-09-09 07:30:17 · 189 阅读 · 0 评论 -
02、常量 和 iota
1、常量申明--相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。--逐个赋值 const pi = 3.1415 const e = 2.7182--批量声明: const ( pi = 3.1415 e = 2.7182 )--const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如: c原创 2020-09-09 06:46:42 · 109 阅读 · 0 评论 -
01、go安装 | 第一个程序 | 以及 变量
1、安装2、第一个程序--代码示例: package main //非注释的第一行必须为该行,当执行入口在这一行时,package名称必须是main import ( . "fmt" //导入包名 ) func main() { //大括号不能独立一行,会编译报错 Println("黎明") }--命令: --go run hello.go # 运行 hello.go 文件 --go build hello.go原创 2020-09-09 05:53:23 · 216 阅读 · 0 评论