MST

星途 面试题库

面试题:Go中多值返回的类型推导基础

在Go语言中,假设有一个函数`func divide(a, b int) (int, error)`,请解释这个函数多值返回时,Go编译器是如何进行类型推导的。如果将这个函数调用放在一个短变量声明语句`result, err := divide(10, 2)`中,这里的类型推导过程又是怎样的?
49.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 函数定义时的类型推导
    • func divide(a, b int) (int, error)函数定义中,返回值类型interror是显式声明的,不存在类型推导过程。Go语言函数定义要求明确指定每个参数和返回值的类型,所以这里编译器不需要进行类型推导来确定返回值类型。
  2. 短变量声明语句中的类型推导
    • result, err := divide(10, 2)中,divide函数返回两个值,第一个返回值类型是int,第二个是error
    • 对于result,编译器根据divide函数的第一个返回值类型int,推导出result的类型为int
    • 对于err,编译器根据divide函数的第二个返回值类型error,推导出err的类型为error
    • 这里的类型推导是基于函数返回值的显式类型声明,Go编译器通过函数签名中返回值的类型信息来确定短变量声明中对应变量的类型。