golang入门到项目实战|golang继承(代码片段)

一个热爱编程的通信人 一个热爱编程的通信人     2023-03-09     778

关键词:

golang本质上没有oop的概念,也没有继承的概念,但是可以通过结构体嵌套实现这个特性。

例如

package main

import "fmt"

type Animal struct 
    name string
    age  int


func (a Animal) eat() 
    fmt.Println("eat...")


func (a Animal) sleep() 
    fmt.Println("sleep")


type Dog struct 
    Animal


type Cat struct 
    Animal


func main() 
    dog := Dog
        Animal
            name: "dog",
            age:  2,
        ,
    

    cat := Cat
        Animal
            name: "cat",
            age:  3,
        ,
    

    dog.eat()
    dog.sleep()

    cat.eat()
    dog.sleep()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
eat...
sleep
eat...
sleep

golang入门到项目实战|golang指向数组的指针(代码片段)

定义语法varptr[MAX]*int;表示数据里面的元素的类型是指针类型实例演示packagemainimport"fmt"constMAXint=3funcmain()a:=[]int1,3,5variintvarptr[MAX]*intfmt.Println(ptr)//这个打印出来的是[<nil><nil><nil>]fo 查看详情

golang入门到项目实战第一个golang应用

参考技术A1.创建一个文件夹,例如:golang入门到项目实战2.在golang入门到项目实战文件夹中创建一个go文件,例如:test.go3.在test.go中输入如下内容:4.编译执行goruntest.go5.可仅选择编译执行gobuildtest.go,则目录下会多出个exe程序 查看详情

golang入门到项目实战|golang构造函数(代码片段)

golang没有构造函数的概念,可以使用函数来模拟构造函数的功能。例如packagemainimport"fmt"typePersonstructnamestringageintfuncNewPerson(namestring,ageint)(*Person,error)ifname==""returnnil,fmt.Errorf("name不能为空")ifage<0returnnil... 查看详情

golang入门到项目实战|golang指针(代码片段)

Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无需拷贝数据。类型指针不能进行偏移和运算。Go语言中的指针操作非常简单&#... 查看详情

golang入门到项目实战|golang运算符(代码片段)

Go语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符算术运算符运算符描述+相加-相减*相乘/相除%求余注意:++(自增)和--(自减)在Go语言中是单独的语句,并不是... 查看详情

golang入门到项目实战golang匿名函数

参考技术Ago语言函数不能嵌套,但是在函数内部可以定义匿名函数,实现一下简单功能调用。所谓匿名函数就是,没有名称的函数。语法格式如下:当然可以既没有参数,可以没有返回值运行结果自己执行运行结果 查看详情

golang入门到项目实战|golang高阶函数(代码片段)

...yHello)运行结果[Running]gorun"d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\tempCodeRunnerFile.go"Hello,tomgo语言函数作为返回值packagemainimport"fmt"funcadd(x,yint)intreturnx+yfuncsub(x,yint)intreturnx-yfunccal(sstr... 查看详情

golang入门到项目实战|golang中的if语句(代码片段)

go语言中的if语句和其他语言中的类似,都是根据给定的条件表达式运算结果来,判断执行流程。go语言if语句语法if布尔表达式/*在布尔表达式为true时执行*/注意:在go语言中布尔表达式不用使用括号。go语言if语句实例... 查看详情

golang入门到项目实战|golang字符串(代码片段)

一个Go语言字符串是一个任意字节的常量序列。[]bytego语言字符串字面量在Go语言中,字符串字面量使用双引号""或者反引号'来创建。双引号用来创建可解析的字符串,支持转义,但不能用来引用多行;反... 查看详情

golang入门到项目实战|go语言遍历map(代码片段)

可以使用forrange循环进行map遍历,得到key和value值。遍历keypackagemainimport"fmt"funcmain()m:=make(map[string]string)m["name"]="tom"m["age"]="20"m["email 查看详情

golang入门到项目实战|golang结构体指针(代码片段)

...p_name)运行结果[Running]gorun"d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"name:tomp_name:0xc000050230*p_name:tomgo结构体指针实例packagemainimport"fmt"funcmain()typePersonstructidintnamestringvartom=P 查看详情

golang入门到项目实战golang并发编程之runtime包

参考技术Aruntime包里面定义了一些协程管理相关的api让出CPU时间片,重新等待安排任务运行结果退出当前协程运行结果运行结果如果修改最大核心数为1,运行结果如下,不会出现交替执行现象 查看详情

golang入门到项目实战golang结构体指针

参考技术A结构体指针和普通的变量指针相同,我先来回顾一下普通变量的指针,例如:运行结果实例运行结果我们还可以通过使用new关键字对结构体进行实例化,得到的是结构体的地址,例如:运行结果从运行结果,我们发现p_... 查看详情

golang入门到项目实战|golang模拟oop的属性和方法(代码片段)

golang没有面向对象的概念,也没有封装和概念,但是可以通过结构体struct和函数绑定来实现OOP的属性和方法等特性。接收者receiver方法。例如,想要定义一个Person类,有name和age属性,有eat/sleep/work方法。packagema... 查看详情

golang入门到项目实战golang方法

参考技术Ago语言没有面向对象的特性,也没有类对象的概念。但是,可以使用结构体来模拟这些特性,我们都知道面向对象里面有类方法等概念。我们也可以声明一些方法,属于某个结构体。Go中的方法,是一种特殊的函数,定... 查看详情

golang入门到项目实战golangfor循环语句

参考技术Ago语言中的for循环,只有for关键字,去除了像其他语言中的while和dowhile.注意:for表达式不用加括号循环输出1到10运行结果初始条件,可以写到外面运行结果初始条件和结束条件都可以省略运行结果这种情况类似其他语... 查看详情

golang入门到项目实战|go语言中的流程控制(代码片段)

go语言中的条件条件语句是用来判断给定的条件是否满足(表达式值是否为true或者false),并根据判断的结果(真或假)决定执行的语句,go语言中的条件语句也是这样的。go语言中的条件语句包含如下几种情况if语句:if语... 查看详情

golang入门到项目实战|golang函数类型与函数变量(代码片段)

可以使用type关键字来定义一个函数类型,语法格式如下:typefunfunc(int,int)int上面语句定义了一个fun函数类型,它是一种函数类型,这种函数接收两个int类型的参数,并且返回一个int类型的返回值。下面我们定... 查看详情