当前位置:   article > 正文

GO面试题系列

GO面试题系列
1.GO有哪些关键字
2.GO有哪些数据类型
3.Go方法与函数的区别

在Go语言中,方法和函数是两个不同的概念,尽管它们在某些方面有相似之处。下面是它们的主要区别:

  1. 定义位置:
    • 函数: 函数是独立声明的,它们不依赖于任何类型。函数声明通常是在包级别的,也可以在其他函数内声明。
    • 方法: 方法是与特定类型关联的函数。它们是在类型的定义中声明的,因此它们被称为该类型的方法。
      1. // 函数
      2. func add(a, b int) int {
      3. return a + b
      4. }
      5. // 方法
      6. type Calculator struct {
      7. Result int
      8. }
      9. func (c *Calculator) Add(a, b int) {
      10. c.Result = a + b
      11. }
  2. 调用方式:
    • 函数: 函数可以直接调用,不需要通过特定的类型。
    • 方法: 方法是通过特定类型的实例来调用的。
  1. // 函数调用
  2. result := add(2, 3)
  3. // 方法调用
  4. calc := Calculator{}
  5. calc.Add(2, 3)

3.关联的数据:

  • 方法: 方法是与特定类型相关联的,可以访问该类型的数据。

  • 函数: 函数是独立的,不依赖于任何特定的数据结构。
  1. // 函数没有关联的数据
  2. func printMessage(message string) {
  3. fmt.Println(message)
  4. }
  5. // 方法关联了Calculator类型的数据
  6. func (c *Calculator) PrintResult() {
  7. fmt.Println(c.Result)
  8. }

  1. 4.语法:
    • 函数: 函数的声明没有接收者(receiver)。
    • 方法: 方法的声明包含一个接收者,它指定了方法与哪种类型相关联。
      1. // 函数声明
      2. func add(a, b int) int {
      3. return a + b
      4. }
      5. // 方法声明
      6. func (c *Calculator) Add(a, b int) {
      7. c.Result = a + b
      8. }

总体而言,方法是一种特殊类型的函数,它们与某种数据类型关联。这种关联使得方法更容易访问和操作与其关联的数据。

5.Go函数返回局部变量的指针是否安全
6.Go函数参数传递到底是值传递还是引用传递

7.Go defer关键字的实现原理

8.Go内置函数make和new的区别

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/89199
推荐阅读
相关标签
  

闽ICP备14008679号