写一段用Go语言写成的代码
时间: 2024-09-18 20:07:38 浏览: 61
当然可以,这里是一个简单的 Go 语言示例,它定义了一个函数 `sayHello`,然后通过接收者类型(Receiver Type)实现了多态,即无论传入的是字符串还是切片,都能打印出相应的问候:
```go
package main
import "fmt"
// 定义一个接口,用于表示可以打招呼的对象
type Greeting interface {
sayName(name string)
}
// String 类型实现 Greeting 接口
type String struct{}
func (s String) sayName(name string) {
fmt.Printf("Hello, %s!\n", name)
}
// Slice 类型也实现 Greeting 接口
type Slice []string
func (s Slice) sayName(name string) {
fmt.Printf("Hi, %s! You have the following names: %v\n", name, s)
}
func greet(g Greeting) {
g.sayName("World")
}
func main() {
str := String{}
slice := Slice{"Alice", "Bob"}
// 调用 greet 函数,传递不同类型
greet(str)
greet(slice)
}
```
在这个例子中,`greet` 函数可以接受 `String` 或 `Slice` 类型作为参数,这就是多态的应用。
阅读全文