当前位置: 首页 > news >正文

【Go语言入门学习笔记】Part5.函数

一、前言

        这里的还是跟C有区别的,大家熟悉了其他语言后,还得注意一下这里的内容。Go的函数非常灵活。

二、学习代码

package mainimport "fmt"// ZhengXing 类似typedef的方法
type ZhengXing int// 函数名有说法,首字母大写是public的,小写是private的
// func 函数名 形参 返回参数类型
func add(num1 int, num2 int) float32 {num3 := float32(num1 + num2)return num3
}func putFuncIn(num int, function func(int, int) float32) int {sum := num + int(function(7, 8))return sum}func main() {var num1, num2 intnum1, num2 = 1, 2num1, num2 = num2, num1fmt.Println(num1, num2)fmt.Println(add(1, 2))fmt.Println(Double2(2))//返回多个参数,如下doubleIt, flag := TwoReturn(100)fmt.Println(doubleIt)fmt.Println(flag)//多个,不清楚多少参数的时候,如下fmt.Println(ManyNums(1, 2))fmt.Println(ManyNums(1, 2, 3, 4, 5))//需要注意变量的作用域问题,函数内的不会影响到main的//指针可以让函数内修改main变量,同C,如下var num int = 64ptrSetting(&num)fmt.Println(num)//可以给函数做成变量,感觉有点像是换名字,类似于函数指针a := adda(1, 6)fmt.Printf("%T\n", a)//a也可以当变量传入其他函数fmt.Println(putFuncIn(100, a))//自定义数据类型var num5 ZhengXing = 111fmt.Println(num5)//可以在函数头指明要返回谁fmt.Println(sumAndSub(3, 4))
}

package mainfunc Double2(x int) int {return x * x
}func TwoReturn(num int) (int, bool) {var judge boolif num > 10 {judge = true} else {judge = false}return num * num, judge
}func ManyNums(args ...int) int {var sum intfor i := 0; i < len(args); i++ {sum += args[i]}return sum
}func ptrSetting(ptr *int) {*ptr++return
}func sumAndSub(a, b int) (sum, sub int) {sum = a + bsub = a - breturn
}

http://www.lryc.cn/news/356069.html

相关文章:

  • 磁珠笔记汇总
  • 【css3】02-css3新特性之选择器篇
  • 修正错误的插入排序
  • Unity 权限 之 Android 【权限 动态申请】功能的简单封装
  • 跟进2年弄丢1.8亿,你的大客管理错在哪里?
  • 浅说线性DP(上)
  • leetcode题目18
  • 后端企业级开发之yaml数据序列化格式文件详解2024
  • 智能界面设计:数字孪生与大数据结合的美学典范
  • 听说部门来了个00后测试开发,一顿操作给我整麻了
  • Linux shell命令
  • 【Linux】Linux基本指令1
  • 重学java 49 增强for
  • BUUCTF靶场[Web] [极客大挑战 2019]Havefun1、[HCTF 2018]WarmUp1、[ACTF2020 新生赛]Include
  • 现代信号处理11_Spectral Analysis谱分析(CSDN_20240526)
  • C#开发上位机应用:基础与实践
  • 话术巧妙分隔沟通效果更佳看看这个小技巧
  • 【Spring】设计模式(GOF)
  • php抖音详情和关键词搜索api
  • SOCKS 代理 和 HTTP 代理
  • 【Linux】自己实现一个bash进程
  • 记录深度学习GPU配置,下载CUDA与cuDnn
  • Word将表格调成合适的大小
  • 2024HBCPC:C Goose Goose Duck
  • Llama 3 模型家族构建安全可信赖企业级AI应用之使用 Llama Guard 保护大模型对话 (八)
  • 《一地霜白》读书笔记
  • 在Java中实现多线程之间的通信
  • Python中的json.dump与json.dumps对比
  • 【从零开始学习RabbitMQ | 第二篇】如何确保MQ的可靠性和消费者可靠性
  • 常用批处理命令及批处理文件编写技巧