• 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可以定义对象的一组行为。

  • 相关阅读:
    yum 下载安装包以及依赖包
    《将博客搬至CSDN》
    Lucene
    Solr
    LVS原理详解(3种工作模式及8种调度算法)
    正向代理与反向代理
    网关,网卡
    NAT地址转换
    Nginx学习总结
    网络_OSI模型_数据包传输
  • 原文地址:https://www.cnblogs.com/junwangustc/p/3751568.html
Copyright © 2020-2023  润新知