MST

星途 面试题库

面试题:Go语言复数类型在函数传递及返回中的应用

编写一个Go函数,该函数接收两个复数作为参数,对它们进行减法运算并返回结果。同时,说明在函数调用时,复数类型参数传递的特点以及对性能可能产生的影响。
44.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

func subtractComplex(a complex128, b complex128) complex128 {
	return a - b
}

在Go语言中,复数类型属于值类型。当将复数作为参数传递给函数时,会进行值拷贝。这意味着函数接收到的是实参的副本,对形参的修改不会影响到实参。

对性能的影响

  • 由于复数类型 complex128 占用16个字节(complex64 占用8个字节),相对较小。因此在大多数情况下,值拷贝带来的性能损耗可以忽略不计。
  • 但如果在一个频繁调用的函数中传递复数,或者传递大量复数组成的切片、数组等,值拷贝可能会对性能产生一定影响。在这种情况下,可以考虑传递复数的指针,但要注意通过指针修改复数可能会影响到原始数据。