面试题答案
一键面试package main
import "fmt"
func subtractComplex(a complex128, b complex128) complex128 {
return a - b
}
在Go语言中,复数类型属于值类型。当将复数作为参数传递给函数时,会进行值拷贝。这意味着函数接收到的是实参的副本,对形参的修改不会影响到实参。
对性能的影响:
- 由于复数类型
complex128
占用16个字节(complex64
占用8个字节),相对较小。因此在大多数情况下,值拷贝带来的性能损耗可以忽略不计。 - 但如果在一个频繁调用的函数中传递复数,或者传递大量复数组成的切片、数组等,值拷贝可能会对性能产生一定影响。在这种情况下,可以考虑传递复数的指针,但要注意通过指针修改复数可能会影响到原始数据。