Go语言学习笔记:关键字、定义与初始化
需积分: 9 37 浏览量
更新于2024-08-05
收藏 34KB MD 举报
"Go语言学习笔记,基于黑马视频教程"
这篇笔记主要涵盖了Go语言的基础知识,包括包管理、关键字、定义、初始化以及函数调用等方面的内容。以下是详细解释:
1. **包管理**:
Go语言中的程序由多个包组成,每个包都有自己的命名空间。`package main` 是程序的主入口,其中必须包含一个`main`函数,这是程序执行的起点。你可以通过`import`导入其他包,如标准库或其他自定义包。在IDE中,可以使用快捷键`ShiftAltR`运行带有`main`包的文件,并传入命令行参数。
2. **关键字**:
Go语言有一些内建的常量和类型,例如布尔型`true`和`false`,整型`int`及其不同位宽的变种,无符号整型`uint`,浮点型`float32`和`float64`,复数类型`complex128`和`complex64`,布尔型`bool`,字节型`byte`, runes(Unicode码点)`rune`,字符串`string`,以及错误类型`error`。此外,还有一些内建函数,如`make`用于创建切片、映射或通道,`len`返回长度,`cap`返回容量,`new`分配内存并初始化,`append`向切片添加元素,`copy`复制切片,`close`关闭通道,`delete`删除映射中的键值对,`complex`、`real`和`imag`用于处理复数,`panic`引发恐慌,`recover`捕获恐慌。
3. **定义**:
变量定义使用`var`关键字,如`vara,b int`,可以同时声明多个同类型的变量。常量定义使用`const`,如`const a, b int`。指针变量定义为`var p *int`,它可以指向一个整型变量。函数定义使用`func`,如`func Add(a, b int) int { return a + b }`,表示一个接受两个整型参数并返回整型结果的函数。函数类型可以作为变量赋值,例如`fTest := Add`。面向对象的方法通常将第一个参数作为接收者,如`func (p *Person) SetInfo(n string, s byte, a int)`。
4. **初始化**:
可以使用短变量声明来初始化变量,如`a, b := 10, 20`。常量定义同样可以初始化,如`const int = 10`。指针变量的初始化可以赋值一个地址,如`p := &a`,这使得`*p`等于`a`,可以通过`*p = 666`来改变`a`的值。
5. **调用函数**:
调用函数直接使用函数名加括号,传递参数即可,如`result := fTest(10, 20)`。匿名函数可以作为变量赋值,也可以用于闭包。对于匿名空接口`interface{}`,可以存储任何类型的数据,但需要注意类型断言,例如在处理切片时。
6. **方法的封装**:
方法是与特定类型关联的函数,接收者通常是结构体的指针,这样可以修改结构体的成员,如`func (p *Person) SetInfo(n string, s byte, a int)`。方法值是指不带接收者的函数,可以直接调用,不需要再次传递接收者。
7. **其他概念**:
在Go中,可以通过定义接口来实现多态。如果一个方法接收者是结构体,可以使用指针接收者,这样在调用方法时,可以避免不必要的值拷贝。接口的动态类型检查是通过类型断言完成的,例如`switch v.(type)`。
通过这些基本概念,你可以开始构建Go语言的基本知识框架,进一步深入学习Go的并发模型、网络编程、反射机制等高级特性。
637 浏览量
424 浏览量
158 浏览量
907 浏览量
388 浏览量
210 浏览量

我爱golang
- 粉丝: 0
最新资源
- Vue.js波纹效果组件:Vue-Touch-Ripple使用教程
- VHDL与Verilog代码转换实用工具介绍
- 探索Android AppCompat库:兼容性支持与Java编程
- 探索Swift中的WBLoadingIndicatorView动画封装技术
- dwz后台实例:全面展示dwz控件使用方法
- FoodCMS: 一站式食品信息和搜索解决方案
- 光立方制作教程:雨滴特效与呼吸灯效果
- mybatisTool高效代码生成工具包发布
- Android Graphics 绘图技巧与实践解析
- 1998版GMP自检评定标准的回顾与方法
- 阻容参数快速计算工具-硬件设计计算器
- 基于Java和MySQL的通讯录管理系统开发教程
- 基于JSP和JavaBean的学生选课系统实现
- 全面的数字电路基础大学课件介绍
- WagtailClassSetter停更:Hallo.js编辑器类设置器使用指南
- PCB线路板电镀槽尺寸核算方法详解