网站首页 返回列表 像“草根”一样,紧贴着地面,低调的存在,冬去春来,枯荣无恙。

golang 基础(F)函数的参数

2020-06-10 02:48:54 admin 944

square-gopher.png

函数

函数是由函数名,参数,返回值和函数体所组成。

__

  1. func add(a, b int) int {}

定义函数并且复习一下之前的 switch 语句

__

  1. func eval(a, b int,op string) int {
  2. switch op {
  3. case "+":
  4. return a + b
  5. case "-":
  6. return a - b
  7. case "*":
  8. return a * b
  9. case "/":
  10. return a / b
  11. default:
  12. panic("unsupported operation: " + op)
  13. }
  14. }

在 go 语言中 { 需要 bar() 在同一行不言就会报错

__

  1. func bar() //报错
  2. {
  3. }

__

  1. .\funtions.go:26:6: missing function body
  2. .\funtions.go:27:1: syntax error: unexpected semicolon or newline before {

函数中的参数

定义函数可以没有任何参数就像 main 函数

__

  1. func main(){
  2. }

定义函数的参数时和其他语言没有什么不同,指定参数名称和参数类型

__

  1. func sayMessage(msg string){
  2. // body
  3. }

如果参数类型一致我们可以省略 greeting 后面指定类型

__

  1. func sayGreeting(greeting, name string){
  2. fmt.Println(greeting, name)
  3. }

我们可以尝试在 sayGreeting 内部修改 name 这个变量,因为函数作用域这些修改name 不会影响到函数外面的 name 值,这是大家的尝试。

__

  1. func sayGreeting(greeting, name string){
  2. fmt.Println(greeting, name)
  3. name ="matthew"
  4. fmt.Println(name)
  5. }

__

  1. greeting := "hello"
  2. name := "zidea"
  3. sayGreeting(greeting,name)
  4. fmt.Println(name)

从结果来看

__

  1. hello zidea
  2. matthew
  3. zidea

外面的 name 值依旧是 zidea 没有发生变化

我们可以将传递变量引用修改为将变量的地址作为参数传给函数

__

  1. func sayGreeting(greeting, name *string){
  2. fmt.Println(*greeting, *name)
  3. *name ="matthew"
  4. fmt.Println(*name)
  5. }

__

  1. hello zidea
  2. matthew
  3. matthew

__

  1. func main(){
  2. fmt.Println(eval(3,4, "*"))
  3. greeting := "hello"
  4. name := "zidea"
  5. fmt.Println(greeting, name)
  6. }

我们也可以通过( )来实现函数动态地传入多个参数,这和 es6 语法很相似。

__

  1. func sum(values ...int){
  2. fmt.Println(values)
  3. result := 0
  4. for _, v := range values{
  5. result += v
  6. }
  7. fmt.Println("The sum is ", result)
  8. }

Golang1.png

转载文章,原文链接: golang 基础(F)函数的参数

关键字词golang函数

分享到:

如需留言,请 登录,没有账号?请 注册

0 条评论 0 人参与

顶部 底部