GO面试题系列

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

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

  1. 定义位置:

    • 函数: 函数是独立声明的,它们不依赖于任何类型。函数声明通常是在包级别的,也可以在其他函数内声明。

    • 方法: 方法是与特定类型关联的函数。它们是在类型的定义中声明的,因此它们被称为该类型的方法。

      Go 复制代码
      // 函数
      func add(a, b int) int {
          return a + b
      }
      
      // 方法
      type Calculator struct {
          Result int
      }
      
      func (c *Calculator) Add(a, b int) {
          c.Result = a + b
      }
  2. 调用方式:

    • 函数: 函数可以直接调用,不需要通过特定的类型。
    • 方法: 方法是通过特定类型的实例来调用的。
Go 复制代码
// 函数调用
result := add(2, 3)

// 方法调用
calc := Calculator{}
calc.Add(2, 3)

3.关联的数据:

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

  • 函数: 函数是独立的,不依赖于任何特定的数据结构。

Go 复制代码
// 函数没有关联的数据
func printMessage(message string) {
    fmt.Println(message)
}

// 方法关联了Calculator类型的数据
func (c *Calculator) PrintResult() {
    fmt.Println(c.Result)
}
  1. 4.语法:
    • 函数: 函数的声明没有接收者(receiver)。

    • 方法: 方法的声明包含一个接收者,它指定了方法与哪种类型相关联。

      Go 复制代码
      // 函数声明
      func add(a, b int) int {
          return a + b
      }
      
      // 方法声明
      func (c *Calculator) Add(a, b int) {
          c.Result = a + b
      }

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

5.Go函数返回局部变量的指针是否安全
6.Go函数参数传递到底是值传递还是引用传递
7.Go defer关键字的实现原理

8.Go内置函数make和new的区别
相关推荐
梵刹古音1 小时前
【C语言】 字符数组相关库函数
c语言·开发语言·算法
微风中的麦穗7 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146537 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术8 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学8 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
mftang9 小时前
Python 字符串拼接成字节详解
开发语言·python
jasligea9 小时前
构建个人智能助手
开发语言·python·自然语言处理
kokunka10 小时前
【源码+注释】纯C++小游戏开发之射击小球游戏
开发语言·c++·游戏
云栖梦泽10 小时前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言
java1234_小锋11 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试