Golang程序 显示类中方法重载

Golang程序 显示类中方法重载

在这篇文章中,我们将通过不同的例子来学习如何重载类中的方法。Go编程语言没有类的概念,所以将使用函数重载来执行程序。因此,代码可以更加灵活和可读。举个例子,你可以创建一个函数,接受一个接口作为参数,然后用几个实现该接口的类型来调用它。让我们来看看它的执行。

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

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

算法

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

  • 第2步 – 为内置的int类型创建一种独特的别名,即MyInt。

  • **第3 步 – **定义MyInt类型的两个相关方法,Print()和PrintWithNumber(数字字符串)。

  • 第4步 – 在main()函数中创建一个名为val的MyInt类型的变量,并赋予其值6。

  • 第5步– 为了打印数值6,在val变量上使用Print()函数。

  • 第6步 – 调用PrintWithNumber(number string)函数,参数为val变量的 “number”。这将打印数字6和后面的 “数字”。

  • 第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类型的接口

这里,.意味着打印函数可以接受任何数量的参数。让我们看看代码和算法,了解它是如何完成的。

语法

func len(v Type) int

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

算法

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

  • 第2步 – 为内置的int类型MyInt创建一个别名。

  • 第3步 – 创建一个与MyInt类型相关的方法print,如print(args…interface)。这里,……帮助d采取任何数量的参数。

  • 第4步 – 在下一步中,使用print方法中的if语句检查args片的长度。

  • 第5步 – 如果args片的长度为零,则打印MyInt类型的值;如果args片的长度大于零,则打印MyInt类型的值,然后是args片。

  • 第6步 – 创建一个名为val的MyInt类型的变量,并在main()方法中赋予其值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类型的接口。这两个程序的输出结果相似。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程