zouLearn

导航

统计

Go语言的函数

Go语言中的函数

函数的用法

func function_name( [parameter list] ) [return_types] {
函数体
}
package main
import "fmt"
func main() {
var x int = sumTwoNumber(3,4)
fmt.Printf("%d", x)
}
/**函数名 (参数,参数) 返回类型 **/
func sumTwoNumber(a, b int) (int) {
/* 定义局部变量 */
var result int;
result = a + b
return result
}

无参数无返回值的函数

//无参数无返回值的函数
func NoAll()() {
fmt.Printf("我是一个什么也没有的函数\n")
}

无参数有返回值的函数

func NoParam() (string) {
return "我是一个无参数但是有返回值的函数"
}

有参数有返回值的函数

// 求和
func sumTwoNumber(a, b int) (int) {
/* 定义局部变量 */
var result int;
result = a + b
return result
}

多返回值的函数

/**多个返回值**/
func swapStrings(oldString01,oldString02 string) (string,string) {
return oldString02 ,oldString01
}

返回值的命名

在go语言中可以对返回值的参数进行命名

package main
import "fmt"
func main() {
var a string
var b bool
a,b = Inc()
fmt.Printf("%v:%v\n", a,b)
}
func Inc()(value string,ok bool){
m :=make(map[string]string)
m["address"]="地址"
value,ok = m["address"]
return
}

Go函数的闭包

Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。

func main() {
var param int =0
FunctionA:=GetFunction()
param =FunctionA()
fmt.Printf("%d\n", param)
}
/**函数的闭包**/
func GetFunction() (func () (int) ) { //可以简写 func GetFunction() func () (int) {...}
var i int = 0
return func()(int){
var result int = i
result++
return result
}
}

image-20221003171608247

Go语言泛型函数

func AddFloat(a, b float64) float64
func Add[T any](a, b T) T

comparable 包

Go 内置提供了一个 comparable 约束,表示可比较的。参考下面代码:

/* 遍历的泛型函数 */
func ForEach[T comparable] (Array[] T)(){
for key, value := range Array {
fmt.Printf("第%d个值:%v\n", key,value)
}
}

Go语言的标准输入输出

package main
import (
"fmt"
)
func main() {
var str string
fmt.Scanln(&str)
fmt.Printf("INPUT :%s\n", str);
}

posted on   zou_IT  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示