Go语言 函数,工程管理

1、无参无返回值函数的使用

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
package main

import "fmt"

func main() {
	// 无参无返回值函数的调用:函数名()
	func1()
}

// 无参无返回值函数的定义
func func1() {
	str1 := "mysql -uroot -p123456 -S /data/3306/mysql.socket"
	fmt.Println("mysql数据库本地登录命令是#", str1)
}

 

2、普通参数列表

package main

import "fmt"

// 有参无返回值函数的定义,普通参数列表
// 定义函数时,在函数名后面()定义的参数叫形参
// 参数传递,只能由实参传递传递给形参,不能反过来,单向传递

func func1(a int) {
	fmt.Println("a =", a)
}

func func2(a int, b int) {
	fmt.Printf("a = %d, b = %d\n", a, b)
}

func func3(a, b int) {
	fmt.Printf("a = %d, b = %d\n", a, b)
}

func func4(a int, b string, c float64) {
}

func func5(a, b string, c float64, d, e int) {
}

func func6(a string, b string, c float64, d int, e int) {
}

func main() {
	// 有参无返回值函数调用:函数名(所需参数)
	// 调用函数传递的参数叫实参
	func1(666)
	func2(666, 777)
}

 

3、不定参数类型 args ...type

package main

import "fmt"

func func1(a int, b int) { // 固定参数
	fmt.Printf("a = %d, b = %d\n", a, b)
}

// ...int类型这样的类型,...type不定参数类型
// 注意:不定参数,一定只能放在形参中的最后一个参数
func func2(args ...int) { // 传递的实参可以是0个或多个
	fmt.Println("len(args) =", len(args)) // 获取用户传递参数的个数
	for i := 0; i < len(args); i++ {
		fmt.Printf("args[%d] = %d\n", i, args[i])
	}
}

// 返回2个值,第一个是下标,第二个是下标所对应的数
func func3(args ...int) {
	for i, data := range args {
		fmt.Printf("args[%d] = %d\n", i, data)
	}
}

// 固定参数一定要传参,不定参数根据需求传参
func func4(a int, args ...int) {
	fmt.Println("a =", a)
	for i, data := range args {
		fmt.Printf("args[%d] = %d\n", i, data)
	}
}

// 注意:不定参数一定要放在形参中的最后一个参数位置。
// func func5(args ...int, a int) {
// }

func main() {
	func1(666, 777)
	fmt.Println("--------------------------")
	func2(111, 222, 333, 444, 555)
	fmt.Println("--------------------------")
	func3(10, 11, 12, 13, 14, 15)
	fmt.Println("--------------------------")
	func4(9, 10, 11, 12, 13, 14, 15)
	fmt.Println("--------------------------")
	func4(9)
}

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄