为什么golang中没有类-创新互联

Go语言

成都创新互联公司长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为肥东企业提供专业的成都做网站、网站设计,肥东网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。

golang没有类(class)。

golang中并没有明确的面向对象的说法,不能算是一种面向对象的语言。因为:

  1. golang只支持封装,不支持继承和多态

  2. golang只有struct,没有class

实在要扯上的话,可以将struct比作其它语言中的class。

类声明

type Poem struct {
    Title  string
    Author string
    intro  string
}

这样就声明了一个类,其中没有public、protected、private的的声明。

golang用另外一种做法来实现属性的访问权限:属性的开头字母是大写的则在其它包中可以被访问,否则只能在本包中访问。类的声明和方法亦是如此。

类方法声明

func (poem *Poem) publish() {
    fmt.Println("poem publish")
}

或者

func (poem Poem) publish() {
    fmt.Println("poem publish")
}

和其它语言不一样,golang声明方法和普通方法一致,只是在func后增加了poem Poem这样的声明。加和没有加*的区别在于一个是传递指针对象,一个是传递值对象。

以上就是golang有类(class)吗?的详细内容,更多请关注创新互联其它相关文章!


网站题目:为什么golang中没有类-创新互联
文章地址:http://pwwzsj.com/article/dcdggs.html