variadic_params.go 387 B

1234567891011121314151617181920212223242526
  1. package main
  2. import "fmt"
  3. func max(nums ...int) int {
  4. if len(nums) == 0 {
  5. panic("max: at least one argument required")
  6. }
  7. m := nums[0]
  8. for _, v := range nums[1:] {
  9. if v > m {
  10. m = v
  11. }
  12. }
  13. return m
  14. }
  15. func main() {
  16. fmt.Println(max(3, 7, 2, 9, 4)) // 9
  17. fmt.Println(max(-10, -5, -1, -100)) // -1
  18. fmt.Println(max(42))
  19. arr := []int{4, 5, 6}
  20. fmt.Println(max(arr...))
  21. }