go语言基础包,接口

Posted 一只小阿大:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言基础包,接口相关的知识,希望对你有一定的参考价值。

目录

包的话我感觉没啥可说的,需要注意的是比如有两个包,一个main一个func包,如果func包的函数或变量名开头小写,其他包是无法访问这个函数或者变量的。

go语言包如果不使用的话会报错,所以会自动删除不使用的包

这时候还会涉及两个包的写法,一种是给包换个名字例如:
import (
myfmt “fmt”
)
还有一种写法,是匿名引入包,有啥好处呢?就是调用这个包的init函数,但不会用这个包其他的函数或者方法,例如
import (
_ “fmt”
)

接口

接口类型就像是一种约定——概括了一种类型应该具备哪些方法,在Go语言中提倡使用面向接口的编程方式实现解耦。

接口是一种由程序员来定义的类型,一个接口类型就是一组方法的集合,它规定了需要实现的所有方法。

相较于使用结构体类型,当我们使用接口类型说明相比于它是什么更关心它能做什么。

接口定义格式:

type 接口类型名 interface
    方法名( 参数列表 ) 返回值列表

接口简单使用体会

package main

import "fmt"

type Dog struct 
	name string
	age  int


type Cat struct 
	name string
	age  int


func (dog Dog) Say() 
	fmt.Printf("dog name =%s,age = %d\\n", dog.name, dog.age)


func (cat Cat) Say() 
	fmt.Printf("cat name =%s,age = %d\\n", cat.name, cat.age)
	fmt.Println("小梨花爱上了阿拉斯加")


//定义了一个接口,不管你什么类型,它只管实现了什么方法
//定义一个类型,一个抽象的类型,只要实现了say方法的类型都可以称为animalSay类型
type animalSay interface 
	Say()


func do(a animalSay) 
    //不管传进来的是什么,就会执行他的Say方法
	a.Say()


func main() 
	mainDog := Dog
		name: "阿拉斯加",
		age:  100,
	

	mainCat := Cat
		name: "小梨花",
		age:  44,
	

	do(mainDog)
	do(mainCat)


Operation results:
dog name =阿拉斯加,age = 100
cat name =小梨花,age = 44
小梨花爱上了阿拉斯加

以上是关于go语言基础包,接口的主要内容,如果未能解决你的问题,请参考以下文章

Go基础之函数方法接口包

Go基础之函数方法接口包

Go基础之函数方法接口包

Go语言中的接口暴露

go基础

go语言基础包,接口