
Golang面向对象基础:方法与结构体
下载需积分: 50 | 850KB |
更新于2024-08-20
| 119 浏览量 | 举报
收藏
"面向对象-golang基础"
Golang是一种由Google开发的编程语言,旨在结合C语言的简洁性和现代编程语言的特性。它不是传统的面向对象语言,但通过接口实现了多态性,支持函数式编程、过程式编程以及面向对象编程的元素。在Golang中,函数的另一种形态是带有接收者的函数,这被称为method。
1. 方法(Method)定义:方法是绑定到特定类型的函数,可以通过类型实例来调用。例如,`Rectangle`和`Circle`结构体都有一个名为`area`的方法,分别计算矩形和圆的面积。
```go
type Rectangle struct {
width, height float64
}
func (r Rectangle) area() float64 {
return r.width * r.height
}
type Circle struct {
radius float64
}
func (c Circle) area() float64 {
return c.radius * c.radius * math.Pi
}
```
2. 方法继承:当一个结构体包含另一个结构体作为匿名字段时,可以继承其方法。在示例中,`Employee`结构体包含`Human`结构体,因此可以调用`Human`结构体定义的方法。
```go
type Human struct {
name string
age int
}
type Employee struct {
Human // 匿名字段
company string
}
```
3. 方法重写:如果子类型(如`Employee`)定义了与父类型(如`Human`)相同的方法,那么子类型的方法会覆盖父类型的方法。在示例中,`Employee`结构体重写了`Human`的`SayHi`方法。
```go
// Human 定义method
func (h Human) SayHi() {
}
// Employee 的method重写Human的method
func (e Employee) SayHi() {
}
```
4. 不支持方法重载:Golang不支持同名方法具有不同参数列表的重载现象,所以每个方法名必须是唯一的。
Golang的基本语法包括数据类型、变量定义、控制结构(如if、for、switch)、函数、结构体、面向对象(如方法和接口)、并发(goroutine和channel)、接口、导入和包管理、主函数(main)、初始化函数(init)以及测试(test)。Golang还具有类型安全和内存安全特性,使用指针但限制其操作,以防止内存错误。它有内置的内存垃圾回收机制,支持跨平台编译,并且专为网络通信、并发控制和分布式计算设计。Golang的类型系统包括布尔、字符串以及各种整数、浮点数和复数类型,还有数组、切片、映射等复杂数据结构。
相关推荐










辰可爱啊
- 粉丝: 24
最新资源
- TensorFlow核心概念与应用实例学习指南
- CMSC 126课程项目:咖啡连接网站开发概述
- iOS 14.5 镜像文件下载与Xcode调试指南
- Flutter自定义动画容器Surface小部件深度解析
- Laravel框架:简化Web开发的利器
- 每日算法挑战:Python实践详解
- 番茄CRX插件V0.0.5更新:优化与资源分享
- Flutter入门项目:todo_app应用开发指南
- Mongoose插件mongoose-acl实现精细访问控制
- 教育技术:论文集一答案的深入分析
- SmartPillsBox原型演示:智能药盒的运行与演示
- 蚂蚁设计Adcropper项目:React前端开发实践
- Java语言开发的聊天程序解析
- DiscLangEditor:基于本体的Java歧视性语言检测工具
- 地理空间数据可视化存储库:个人与演示用途产品组合
- 基于Django的自动价格搜寻器项目开发介绍