Golang 展示类中方法的重载

Golang 展示类中方法的重载

在本文中,我们将学习如何使用不同的示例在类中重载方法。Go编程语言没有类的概念,因此将使用函数重载来执行程序。因此,代码可以更具灵活性和可读性。例如,您可以创建一个接受接口作为参数的函数,然后使用实现该接口的多种类型进行调用。让我们看看它的执行。

方法1:使用自定义类型MyInt

这里,它包含两个方法Print()和PrintWithNumber(),其中的值可以在这些MyInt类型的函数中发送。

步骤

  • 步骤1 - 创建一个main包并在程序中声明fmt(格式化包)包

  • 步骤2 - 创建一个唯一类型别名,将内置的int类型取名为MyInt

  • 步骤3 - 定义MyInt类型的两个关联方法,Print()和PrintWithNumber(number string)

  • 步骤4 - 在main()函数中创建一个名为val的MyInt类型变量,并给它赋值6

  • 步骤5 - 使用Print()函数打印值6,传入的参数是val变量

  • 步骤6 - 在val变量上调用PrintWithNumber(number string)函数,传入参数”number”。这将打印数字6和单词”number”

  • 步骤7 - 使用fmt.Println()函数来执行打印语句,其中ln表示换行

示例

在这个示例中,我们将看到如何使用自定义类型MyInt来在类中重载方法。

package main
import "fmt"

type MyInt int

func (val MyInt) Print() {
    fmt.Println(val)   //print val created in main
}

func (val MyInt) PrintWithNumber(number string) {
    fmt.Println(val, number)    //print both val of type MyInt and number of type string
}

func main() {
    val := MyInt(6)   //create val
    fmt.Println("The representation of function overloading is:")
    val.Print()                   // Output: 6
    val.PrintWithNumber("number") // Output: 6 number
}

输出

The representation of function overloading is:
6
6 number

方法2:使用具有 MyInt 类型的接口

在这里,..表示可以通过 print 函数接受任意数量的参数。让我们看看代码和算法,了解如何完成。

语法

func len(v Type) int

len()函数用于获取任何参数的长度。它接收一个参数作为数据类型变量,其长度我们希望找到,并返回整数值,即变量的长度。

步骤

  • 步骤1 - 创建一个包main,并在程序中声明fmt(格式化包)包。

  • 步骤2 - 为内置int类型创建一个别名MyInt。

  • 步骤3 - 创建一个与MyInt类型关联的方法print,其参数为print(args…interface)。这里,…可接受任意数量的参数。

  • 步骤4 - 在print方法中使用if语句检查args切片的长度。

  • 步骤5 - 如果args切片的长度为零,则打印MyInt类型的值;如果args切片的长度大于零,则打印MyInt类型的值,后跟args切片的值。

  • 步骤6 - 在main()方法中创建一个名为val的MyInt类型变量,并赋值为6。

  • 步骤7 - 使用fmt.Println()函数打印val的值,其中ln表示换行。

示例

在这个示例中,我们将学习如何使用接口和MyInt类型展示类中方法的重载。

package main
import "fmt"
type MyInt int

func (val MyInt) Print(args ...interface{}) {
    if len(args) == 0 {         //if the length of args slice is 0 print if statement 
        fmt.Println(val)
    } else {
        fmt.Println(val, args) //else print it 
    }
}

func main() {
    val := MyInt(6)  //create val
    fmt.Println("The function overloading is represented here:")
    val.Print()         // Output: 6
    val.Print("number") // Output: 6 [number]
}

输出

The function overloading is represented here:
6
6 [number]

结论

我们执行了使用两个示例重载方法的程序。在第一个示例中,我们使用了自定义类型MyInt,而在第二个示例中,我们使用了类型MyInt的接口。两个程序都给出了类似的输出。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程