zoukankan      html  css  js  c++  java
  • Go语言中的面向对象

    1, 将函数当做struct字段来处理:

    2, import加载标准库可以直接import{"package name"},实际上是去goroot下加载该模块。对于用户自己的包,则需要在package name 之前加上package path,而path既可以采用相对路径也可以采用绝对路径。a), 点操作:import{."package name"}导入包之后,在调用包中的函数时,可以省略包名,直接调用函数名。b), 别名:import的"packag name"之前加上别名,如import{f "fmt"},那么在调用时,"fmt."就可以简写为"f."。 c), 在import的“package name”之前加上_,表示不直接使用包里的函数,而是调用了该包里的init函数。

    3, method:

    依附于一个给定的类型上,它的语法和函数的声明几乎一样,只不过在func后面增加一个receiver(即method所依从的主体),可以是值传递也可以是指针传递。

    当指针作为receiver时,有两种访问方式。例如:func (b *Box) SetColor(c Color) {...},既可以用*b.c也可以用b.c访问b指针指向的Box的颜色。

    而在调用该SetColor函数时,既可以直接使用Box的对象调用,也可以使用Box对象的指着调用。即:b Box   b.SetColor()和(&b).SetColor()均可调用该函数。

    反之亦可,即指针变量也是可以直接调用receiver为普通类型的函数。

    4, method继承:

    如果匿名字段实现了一个method,那么包含该匿名字段的struct也可以调用该method。

    如果包含匿名字段的struct想要实现自己的与匿名字段的method同名的method,那么就可以直接自己定义该method,重写。

    通过以上内容就实现了基本的面向对象,通过大小写来实现“大写公有,小写私有”。

    5, 巧妙的interface:

    interface是一组method的组合,通过interface可以定义对象的一组行为。

  • 相关阅读:
    查找(线性索引)
    查找(顺序表&有序表)
    数据结构图之六(关键路径)
    数据结构图之五(拓扑排序)
    数据结构图之四(最短路径--弗洛伊德算法)
    数据结构图之三(最短路径--迪杰斯特拉算法)
    数据结构图之二(最小生成树--克鲁斯卡尔算法)
    数据结构图之二(最小生成树--普里姆算法)
    数据结构图之一(基本概念,存储结构,两种遍历)
    数据结构--堆
  • 原文地址:https://www.cnblogs.com/junwangustc/p/3751568.html
Copyright © 2011-2022 走看看