go基础语法(二)

文章目录

函数

  • go的函数都是全局函数,可以被项目中的所有文件使用,所以在项目中,函数名是唯一的。
  • 函数格式:
格式:
func function_name( [parameter list] ) [return_types] {
   函数体
}
例如:
func max(num1, num2 int) int {
   var result int
   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result
}
  • 不定参数
func test(args...int){
	fmt.Println(args)
	//计算不定参数的长度
	fmt.Println(len(args))
}

func main() {
//参数可以任意设定
	test(1,2,3)
	test(11,33,44,55)
}
  • 函数调用:
func main() {
   var a int = 100
   var b int = 200
   var ret int
   //在主函数中,调用上方的max函数
   ret = max(a, b)
   fmt.Printf( "最大值是 : %d\n", ret )
}
  • go函数可以返回多个值
func swap(x, y string) (string, string) {
   return y, x
}
func main() {
   a, b := swap("Google", "Runoob")
   fmt.Println(a, b)
}
  • 函数参数:调用函数时可以有两种传参方式
  1. 值传递:调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
函数定义:
func swap(x, y int) int {
   var temp int
   temp = x 
   x = y    
   y = temp 
   return temp;
}
函数调用:
swap(a,b)
  1. 引用传递:调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
函数定义:
func swap(x *int, y *int) {
   var temp int
   temp = *x   
   *x = *y      
   *y = temp    
}
函数调用:
 swap(&a, &b)
  • 函数用法
  1. 函数嵌套调用(不定参数传递):
func test3(a...int){
	test4(a[0:]...)//从第一个参数开始,把test3的参数传给test4
	test4(a[2:]...)//从第三个参数开始,把test3的参数传给test4
	test4(a[:2]...)//从第一到第二个参数(到二,不包含),传给test4
	test4(a[1:3]...)//顾名思义 
}
  1. 函数作为另外一个函数的实参: 函数定义后可作为另外一个函数的实参数传入
func main(){
   /* 声明函数变量 */
   getSquareRoot := func(x float64) float64 {
      return math.Sqrt(x)
   }

   /* 使用函数 */
   fmt.Println(getSquareRoot(9))
}
  1. 闭包: 闭包是匿名函数,可在动态编程中使用
匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。
  1. 方法 :方法就是一个包含了接受者的函数
  • 函数类型 (自定义函数类型)
func test6()  {
	fmt.Println("代澳旗")
}
func test7(a int,b int){
	fmt.Println(a+b)
}
//type 可以定义函数类型
//type 可以为已存在胡类型起别名
type FUNCTYPE func()
type FUNCTEST func(int,int)

func main() {
	//定义函数类型变量
	var f FUNCTYPE
	f=test6
	//通过函数变量调用函数
	f()

	var f1 FUNCTEST
	f1=test7
	f1(10,20)
}
  • 作用域

全局变量:在函数外部定义的变量,作用域是项目中所有文件,公共信息
全局变量在内存中数据区存储,常量在数据区中的内存区存储。
局部变量:在函数内部定义的变量,作用域限定于本函数的内部,从变量定义到本函数结束一只有效
程序中如果出现了相同的变量名,如果本函数有自己的变量,就使用自己的,如果没有就去上层寻找。如果名字相同就会采用就近原则,使用自己的变量。

标题

发布了116 篇原创文章 · 获赞 59 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44861399/article/details/105030080
今日推荐