美文网首页
2018-10-19Go语言第二天-函数

2018-10-19Go语言第二天-函数

作者: 恶魔辣条儿 | 来源:发表于2018-10-19 11:32 被阅读0次
package main

import "fmt"
import "math"

func eval(a, b int, op string) (int, error) {
  switch op {
  case "+":
    return a + b, nil
  case "-":
    return a - b, nil
  case "*":
    return a * b, nil
  case "/":
    // return a / b
    q, _ := div(a, b)
    return q, nil
  default:
    // panic("unsupported operation: " + op)  中断执行
    return 0, fmt.Errorf("unsupported operation: %s", op)
  }
}

// func div(a, b int) (int, int) {
//   return a / b, a % b
// }

// func div(a, b int) (q, r int) {
//   return a / b, a % b
// }

func div(a, b int) (q, r int) {
  q = a / b
  r = a % b
  return
}

func apply(op func(int, int) int, a, b int) int {
  return op(a, b)
}

func pow(a, b int) int {
  return int(math.Pow(float64(a), float64(b)))
}

func sum(numbers ...int) int {
  s := 0
  for i := range numbers {
    s += numbers[i]
  }
  return s
}

func main() {
  fmt.Println(eval(3, 4, "*"))
  fmt.Println(eval(12, 4, "/"))
  fmt.Println(eval(12, 4, "x"))
  if result, err := eval(3, 4, "x"); err != nil {
    fmt.Println("Error:", err)
  } else {
    fmt.Println(result)
  }

  fmt.Println(div(13, 3))
  q, r := div(13, 3)  //
  fmt.Println(q, r)
  fmt.Println(apply(pow, 2, 2))
  fmt.Println(apply(
    func(a int, b int) int {
      return int(math.Pow(float64(a), float64(b)))
    }, 2, 3))
  fmt.Println(sum(1, 2, 3, 4, 5))
}

相关文章

  • 2018-10-19Go语言第二天-函数

  • iOS开发 -- C语言基础3(函数)

    iOS开发 -- C语言基础3(函数) 什么是函数 一、函数的分类 C语言中的函数就是面向对象中的"方法",C语言...

  • gcc

    C语言 c语言是面向函数的语言,所以c语言中全部都是函数 看看单文件中对函数的生命和调用。 要先对函数进行声明再进...

  • 语言 函数

    函数如何定义: C: C++: OC: python: JavaScript: PHP: java: 为什么有的有...

  • R语言常用函数整理(基础篇)

    R语言基础函数整理 R语言常用函数整理本篇是基础篇,即R语言自带的函数。 一、数据管理 vector:向量nume...

  • ## Swift语言基础精简版-2

    ## 主要介绍函数以及类的定义,结构体及枚举的定义 Swift语言第二天 ###可选类型的应用场景; 创建方式: ...

  • 09-Go语言函数

    函数 Go语言函数格式func 函数名称(形参列表)(返回值列表){函数语句} Go语言函数的类型没有返回值没有形...

  • 2018-08-29日常C笔记

    C语言初学笔记 C语言程序是由函数组成的C语言程序启动时,系统就会自动调用名字叫main的函数C语言规定了函数定义...

  • python函数内容

    在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗? 什么是函数 ...

  • 06-GoLang函数

    函数格式 C语言中 Go语言中 C语言函数的类型 1.没有返回值没有形参的函数 .2.有返回值没有形参的函数 3....

网友评论

      本文标题:2018-10-19Go语言第二天-函数

      本文链接:https://www.haomeiwen.com/subject/xqjyzftx.html