函数通常是程序中的代码块或语句块,它使用户能够重用相同的代码,最终避免过度使用内存,节省时间,更重要的是,提供更好的代码可读性。所以基本上,一个函数是一组执行某些特定任务并将结果返回给调用者的语句。一个函数也可以执行一些特定的任务而不返回任何东西。
Go 编程语言或 Golang 中的指针是一个变量,用于存储另一个变量的内存地址。 Golang 中的指针也称为特殊变量。这些变量用于在系统中的特定内存地址存储一些数据。内存地址总是以十六进制格式(以 0x 开头,如 0xFFAAF 等)。
在 Go 语言中,接口是一种自定义类型,用于指定一组一个或多个方法签名,并且接口是抽象的,因此不允许您创建接口的实例。但是您可以创建一个接口类型的变量,并且可以为该变量分配一个具有接口所需方法的具体类型值。或者换句话说,接口是方法的集合,也是自定义类型。
现在您可以创建一个将接口类型作为值和指针的函数。要理解这个概念,请看下面的例子:
// Golang Function that takes an interface
// type as value and pointer
package main
import "fmt"
// taking an interface
type CoursePrice interface {
show(int)
}
// taking a function that accept
// CoursePrice interface as an value
func show(cp CoursePrice, fee int) {
cp.show(fee)
}
// taking a struct
type Dsa struct {
Price int
}
func (c Dsa) show(fee int) {
c.Price = fee
}
// taking a struct
type Placement struct {
Price int
}
// function accepting a pointer
func (p *Placement) show(fee int) {
p.Price = fee
}
// main function
func main() {
first := Dsa{Price: 2499}
second := Placement{Price: 9999}
// calling the function
show(first, 1999)
// calling the function
// by passing the address
show(&second, 7999)
fmt.Println("DSA Course Fee:", first.Price)
fmt.Println("Placement100 Course Fee:", second.Price)
}
输出:
DSA Course Fee: 2499
Placement100 Course Fee: 7999