Golang 函数如何调用

函数调用指南:函数声明:定义函数名称、参数和返回值类型。函数调用:按名称或位置提供实参调用函数。回调函数:作为参数传递给其他函数的函数。函数值:可传递和返回的函数。匿名函数:不具有名称的函数表达式。实战案例:使用匿名函数从数据库中查询并返回数据。

Go 函数调用指南

Go 是一门静态类型语言,这意味着它在编译时会检查函数类型是否匹配。让我们探讨函数调用不同方面的 Go 代码示例。

函数声明

Go 中的函数声明声明了函数的名称、输入参数和输出结果。

1

2

3

func add(a, b int) int {

return a + b

}

登录后复制

函数调用

函数可以通过提供实参按名称或位置调用。

立即学习go语言免费青狐资源网wcqh.cn学习笔记(深入)”;

位置参数:

1

result := add(10, 20)

登录后复制

名称参数:

1

result := add(a: 10, b: 20)

登录后复制

回调函数

回调函数是作为参数传递给其他函数的函数。

1

2

3

4

5

6

7

8

9

10

11

12

func doSomething(f func(int) int, value int) {

result := f(value)

fmt.Println(result)

}

func double(x int) int {

return x * 2

}

func main() {

doSomething(double, 10) // 输出:20

}

登录后复制

函数值

函数可以作为青狐资源网wcqh.cn值进行传递和返回。

1

2

3

4

5

6

7

8

9

// 返回一个计算平方的函数

func squareFunc() func(int) int {

return func(x int) int { return x * x }

}

func main() {

square := squareFunc()

fmt.Println(square(5)) // 输出:25

}

登录后复制

匿名函数

匿名函数是不具有名称的函数表达式。

1

2

3

4

5

func main() {

data := []int{1, 2, 3, 4, 5}

sum := func(a int, b int) int { return a + b }(data[0], 青狐资源网wcqh.cndata[1])

fmt.Println(sum) // 输出:3

}

登录后复制

实战案例

通过 HTTP 端点进行数据库查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

package main

import (

“context”

“database/sql”

“fmt”

“log”

“net/http”

_ “github.com/go-sql-driver/mysql”

)

const query = `SELECT name FROM users WHERE id = ?`

func main() {

db, err := sql.Open(“mys青狐资源网wcqh.cnql”, “root:password@tcp(127.0.0.1:3306)/database”)

if err != nil {

log.Fatal(err)

}

http.HandleFunc(“/user”, func(w http.ResponseWriter, r *http.Request) {

id := r.URL.Query().Get(“id”)

row := db.QueryRowContext(context.Background(), query, id)

var name string

if err := row.Scan(&name); err != nil {

log.Fata青狐资源网wcqh.cnl(err)

}

fmt.Fprintf(w, “User name: %s”, name)

})

log.Fatal(http.ListenAndServe(“:8080”, nil))

}

登录后复制

该代码演示了如何使用匿名函数从数据库中查询并返回数据。

以上就是Golang 函数如何调用的详细内容,更多请关注青狐资源网其它相关文章!

© 版权声明
THE END
喜欢就支持一下吧
点赞531 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容