-
Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个 基础的特性。组合甚至不能算面向对象特性,因为在C语言这样的过程式编程语言中,也有结构体,也有组合。组合只是形成复合类型的基础。type Rect struct { x, y float64 width, height float64 }然后我们定义成员方法Area()来计算矩形的面积:func (r *Rect) Area() float64 { return r.width * r.height}可以看出, Go语言中结构体的使用方式与C语言并没有明显不同。在定义了Rect类型后,该如何创建并初始化Rect类型的对象实例呢?这可以通过如下几种方法实现:rect1 := new(Rect) rect2 := &Rect{} rect3 := &Rect{0, 0, 100, 200} rect4 := &Rect{width: 100, height: 200}在Go语言中,未进行显式初始化的变量都会被初始化为该类型的零值,例如bool类型的零值为false,int类型的零值为0,string类型的零值为空字符串。在Go语言中没有构造函数的概念,对象的创建通常交由一个全局的创建函数来完成,以NewXXX来命名,表示“构造函数”:func NewRect(x, y, width, height float64) *Rect { return &Rect{x, y, width, height}}
上滑加载中
推荐直播
-
开发者玩转DeepSeek
2025/02/20 周四 16:30-17:30
Thomas – 华为云DTSE技术布道师
双擎驱动优势——华为云CodeArts IDE全栈能力与DeepSeek认知智能深度融合,打造智能编码助手。如何利用DeepSeek的能力,进一步强化业务。
回顾中 -
探秘仓颉编程语言:华为开发者空间的创新利器
2025/02/22 周六 15:00-16:30
华为云讲师团
本期直播将与您一起探秘颉编程语言上线华为开发者空间后,显著提升开发效率,在智能化开发支持、全场景跨平台适配能力、工具链与生态完备性、语言简洁与高性能特性等方面展现出的独特优势。直播看点: 1.java转仓颉的小工具 2.仓颉动画三方库lottie 3.开发者空间介绍及如何在空间用仓颉编程语言开发
即将直播 -
大模型Prompt工程深度实践
2025/02/24 周一 16:00-17:30
盖伦 华为云学堂技术讲师
如何让大模型精准理解开发需求并生成可靠输出?本期直播聚焦大模型Prompt工程核心技术:理解大模型推理基础原理,关键采样参数定义,提示词撰写关键策略及Prompt工程技巧分享。
去报名
热门标签