在golang中能否支持同名方法之简析

在golang中支持同名方法吗?答案是肯定的,Go语言中允许在同一包中创建两个或多个具有相同名称的方法,但是这些方法的接收者必须具有不同的类型;注该功能在Go函数中不可用,这意味着不允许用户在同一包中创建相同名称的方法,如果尝试这样做,则编译器将抛出错误。


在golang中能否支持同名方法之简析


本文适用于windows7系统、GO 1.18版本、Dell G3电脑。


在golang中能否支持同名方法之简析


Go语言允许在同一包中创建两个或多个具有相同名称的方法,但是这些方法的接收者必须具有不同的类型。该功能在Go函数中不可用,这意味着不允许您在同一包中创建相同名称的方法,如果尝试这样做,则编译器将抛出错误。


语法如下:


func(reciver_name_1 Type) method_name(parameter_list)(return_type){
    // Code
}
func(reciver_name_2 Type) method_name(parameter_list)(return_type){
    // Code
}


让我们借助示例来讨论这个概念:


范例1:


package main 
   
import "fmt"
   
//创建结构体
type student struct { 
    name   string 
    branch string 

   
type teacher struct { 
    language string 
    marks    int

   
//名称相同的方法,但有不同类型的接收器
func (s student) show() { 
   
    fmt.Println("学生姓名:", s.name) 
    fmt.Println("Branch: ", s.branch) 

   
func (t teacher) show() { 
   
    fmt.Println("Language:", t.language) 
    fmt.Println("Student Marks: ", t.marks) 

   
func main() { 
   
    // 初始化结构体的值
    val1 := student{"Rohit", "EEE"} 
   
    val2 := teacher{"Java", 50} 
   
    //调用方法
    val1.show() 
    val2.show() 
}


在上面的示例中,我们有两个相同的名称方法,即show(),但接收器的类型不同。这里,第一个show()方法包含s student类型的接收者,第二个show()方法包含t teacher类型的接收者。在main()函数中,我们借助各自的结构体变量来调用这两种方法。如果尝试使用相同类型的接收器创建此show()方法,则编译器将抛出错误。


范例2:


//创建相同名称的方法
//非结构类型的接收器
package main 
   
import "fmt"
   
type value_1 string 
type value_2 int
   
//创建具有相同名称的函数
//不同类型的非结构接收器
func (a value_1) display() value_1 { 
   
    return a + ".com"
} 
   
func (p value_2) display() value_2 { 
   
    return p + 298 
} 
   
func main() { 
   
    //初始化值 
    res1 := value_1("nhooo") 
    res2 := value_2(234) 
   
    // 打印显示结果
    fmt.Println("Result 1: ", res1.display()) 
    fmt.Println("Result 2: ", res2.display()) 
}


在golang中能否支持同名方法之简析就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题