golang中可以使用可变化的参数来声明函数,比如求一列数中的最大值或者是最小值,传入的参数个数是不固定的,这时就需要使用到可变参数。
一:可变参数的声明形式
可变参数的声明形式如下:
func function(param ...type) type {
}
具体到本文讲解的求最大值函数max和求最小值函数min的声明会如下形式:
func min(num ...int) int { //求最大值
//具体实现
}
func max(num ...int) int { //求最小值
//具体实现
}
二:构造int型最大值和最小值
在求最大值和最小值的具体实现中,我们肯定会需要用到一个初始的值来进行记录。
如求最大值的逻辑如下:
max = INT_MIN
if a > min
max = a
return max
那么INT_MIN的值一定是需要时int类型的最小值,那么如何构造INT_MIN
const MAX = int(^uint(0) >> 1) //构造0111111111.... 9223372036854775807
const MIN = int(^MAX) //构造10000000... -9223372036854775808
三:具体实现
具体的求最大值和最小值的函数定义如下:
package main
import "fmt"
const MAX = int(^uint(0) >&g