为什么golang中没有类

Go语言

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元大连做网站,已为上家服务,为大连各地企业和个人服务,联系电话:13518219792

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://hbruida.cn/article/pcoieh.html