yyz notes yyz notes
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

益章

可乐鸡翅
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • golang基础

    • 初识golang

    • golang基础语法

    • golang流程控制

    • golang函数

      • 普通函数-函数声明(函数定义使用)
      • 普通函数-函数声明调用的内存分析
      • 普通函数-函数细节注意点
        • 1. Golang中函数不支持重载
        • 2. Golang中支持可变参数 (如果你希望函数带有可变数量的参数,传递多个值 … )
        • 3. 基本数据类型和数组默认都是值传递的,即进行值拷贝。在函数内修改,不会影响到原来的值。
        • 4. 以值传递方式的数据类型,如果希望在函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式操作变量。从效果来看类似引用传递。(改变函数变量的值)
        • 5. 在Go中,函数也是一种数据类型,可以赋值给一个变量,则该变量就是一个函数类型的变量了。通过该变量可以对函数调用。
        • 6. 函数既然是一种数据类型,因此在Go中,函数可以作为形参,并且调用(把函数本身当做一种数据类型)
        • 7. 为了简化数据类型定义,Go支持自定义数据类型 (type 别名)
      • 普通函数-自定义数据类型(别名)
      • 普通函数-函数的返回值
      • init函数
      • 匿名函数
      • 闭包(Closure)
      • defer(延迟执行语句)
    • golang内置函数

    • golang包

    • golang错误异常处理

    • golang面向对象(结构体)

    • golang文件处理

    • golang并发编程简介

    • golang并发编程-协程

    • golang网络编程

    • 反射 reflect

  • golang高级

  • 常用组件

  • gin

  • golang
  • golang基础
  • golang函数
YiZhang-You
2023-05-24
目录

普通函数-函数细节注意点

# 3. 函数细节注意点

# 1. Golang中函数不支持重载

  • 不能有同名的函数

# 2. Golang中支持可变参数 (如果你希望函数带有可变数量的参数,传递多个值 … )

  • args...int 可以传入任意多个数量的int类型的数据
package main

import "fmt"

// 定义一个函数,函数的参数为:可变参数 ...  参数的数量可变
// args...int 可以传入任意多个数量的int类型的数据  传入0个,1个,,,,n个
func test(args ...int) {
	//函数内部处理可变参数的时候,将可变参数当做切片来处理
	//遍历可变参数:
	for i := 0; i < len(args); i++ {
		fmt.Println(args[i])
	}
}
func main() {
	test()
	fmt.Println("--------------------")
	test(3)
	fmt.Println("--------------------")
	test(37, 58, 39, 59, 47)
}

/*
	--------------------
	3
	--------------------
	37
	58
	39
	59
	47
*/
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

# 3. 基本数据类型和数组默认都是值传递的,即进行值拷贝。在函数内修改,不会影响到原来的值。

# 4. 以值传递方式的数据类型,如果希望在函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式操作变量。从效果来看类似引用传递。(改变函数变量的值)

# 5. 在Go中,函数也是一种数据类型,可以赋值给一个变量,则该变量就是一个函数类型的变量了。通过该变量可以对函数调用。

package main

import "fmt"

// 定义一个函数:
func test1(num int) {
	fmt.Println(num)
}
func main() {
	//函数也是一种数据类型,可以赋值给一个变量
	a := test1                                        //变量就是一个函数类型的变量
	fmt.Printf("a的类型是:%T,test函数的类型是:%T \n", a, test1) //a的类型是:func(int),test函数的类型是:func(int)
	//通过该变量可以对函数调用
	a(10) //等价于  test(10)
}

/*
	a的类型是:func(int),test函数的类型是:func(int)
	10
 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 6. 函数既然是一种数据类型,因此在Go中,函数可以作为形参,并且调用(把函数本身当做一种数据类型)

package main

import "fmt"

// 定义一个函数:
func test3(num int) {
	fmt.Println(num)
}

// 定义一个函数,把另一个函数作为形参:
func test302(num1 int, num2 float32, test3Func func(int)) {
	fmt.Println("-----test302")
}
func main() {
	//函数也是一种数据类型,可以赋值给一个变量
	a := test3                                         //变量就是一个函数类型的变量
	fmt.Printf("a的类型是:%T,test3函数的类型是:%T \n", a, test3) //a的类型是:func(int),test3函数的类型是:func(int)
	//通过该变量可以对函数调用
	a(10) //等价于  test3(10)
	//调用test302函数:
	test302(10, 3.19, test3)
	test302(10, 3.19, a)
}

/*
	a的类型是:func(int),test3函数的类型是:func(int)
	10
	-----test302
	-----test302
*/
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

# 7. 为了简化数据类型定义,Go支持自定义数据类型 (type 别名)

基本语法: type 自定义数据类型名 数据类型

可以理解为 : 相当于起了一个别名 例如:type mylnt int -----》这时mylnt就等价int来使用了.

编辑 (opens new window)
普通函数-函数声明调用的内存分析
普通函数-自定义数据类型(别名)

← 普通函数-函数声明调用的内存分析 普通函数-自定义数据类型(别名)→

最近更新
01
配置yun源
05-24
02
linux-配置python虚拟环境
05-24
03
linux文件目录管理
05-24
更多文章>
Theme by Vdoing | Copyright © 2023-2023 yizhang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式