美文网首页Full Stack Developer
go 面相对象编程(一)

go 面相对象编程(一)

作者: samtake | 来源:发表于2018-04-06 23:44 被阅读70次

go面相对象的特性


仅支持封装,不支持继承和多态

没有class,只有struct


go语言没有构造函数这一说法,也不需要构造函数,如果某些时候的确需要控制他的构造,我们可以使用自定义工厂函数。

package tree

import "fmt"

type Nodestruct {

Value      int

Left, Right *Node

}

func (node Node) Print() {

fmt.Print(node.Value," ")

}

func (node *Node) SetValue(value int) {

if node == nil {

fmt.Println("Setting Value to nil " +

"node. Ignored.")

return

  }

node.Value = value

}

func CreateNode(value int) *Node {

return &Node{Value: value}

}

为结构定义方法

显示定义和命名方法接收者

只有使用指针作为方法的接收者,才可以改变结构内容。

nil指针也可以调用方法。(一般会在为结构定义的方法里面做判断)

相关文章

  • go 面相对象编程(一)

    go面相对象的特性 仅支持封装,不支持继承和多态 没有class,只有struct go语言没有构造函数这一说法,...

  • Go语言入门第三节 Go 语言面向对象机制

    Go语言面向对象编程 Go语言的面相对象和主流语言有很大的不同,如Go 语言里是不支持继承,Go语言的接口实现也不...

  • struct

    面向对象编程 Go支持面向对象编程特性,但和传统面向对象编程是有区别的,Go并不是纯粹的面向对象语言。 Go没有类...

  • [009]对Swift语言的理解

    1.面向对象编程 在面相对象编程的术语中,一个对象是一个类的实例。面相对象编程的好处之一就是前面所提到过的——要使...

  • Go基础语法(十二)

    面向对象编程 Go 并不是完全面向对象的编程语言。 Go 官网的 FAQ 回答了 Go 是否是面向对象语言,摘录如...

  • 写给新手的设计模式——开篇

    为什么需要面相对象 在历史进程中,我们由面相对象编程转向了面相对象编程,项目的规模也变得越来越大,其中有着必然的需...

  • Scala系列文章目录

    Scala(三)-①-函数式编程和异常 Scala(四)-①-面相对象初级 Scala(四)-②-面相对象中级-包...

  • go day06 面向对象 匿名组合 方法、方法集、方法

    面向对象 对于面向对象编程的支持Go语言设计的非常简洁而优雅。因为,Go语言并没有沿袭传统的面向对象编程中的诸多概...

  • go语言20小时从入门到精通(八、 面向对象编程)

    8.1 概述 对于面向对象编程的支持Go 语言设计得非常简洁而优雅。因为, Go语言并没有沿袭传统面向对象编程中的...

  • 第十六章:Go语言面向对象编程

    1. GO语言OOP概述 Go语言不是纯粹的面向对象的语言,准确是描述是,Go语言支持面向对象编程的特性.Go语言...

网友评论

    本文标题:go 面相对象编程(一)

    本文链接:https://www.haomeiwen.com/subject/toggpttx.html