首页 > 其他分享 >函数

函数

时间:2023-02-08 20:55:43浏览次数:30  
标签:函数 int fmt func Println 返回值

很重要go语言中用的最多的就是函数

定义一个标准函数

func 函数名(函数传参变量)(函数返回值变量) {
  函数体
  return 返回值
}

定义一个求和的函数

package main

import "fmt"

//定义一个求值的函数
func sum(x int, y int) (z int) {
  return x + y
}

func main() {
  //引入函数并计算
  sum1 := sum(6, 4)
  fmt.Println(sum1)
  //查看sum1的类型
  fmt.Printf("函数类型%T", sum1) //结果为int类型和上面定义sum函数的返回值是一个类型
}

函数存在的意义

  1. 函数是一段代码的封装
  2. 把一块逻辑抽象出来封装到一个函数中去,给它起个名字,每次用到它的时候直接用函数名调用就可以了
  3. 使用函数能够让代码结构更清晰更简洁

定义一个没有返回值的函数

func s1(x int, y int) {
  fmt.Println(x + y)
}

定义一个没有参数的函数

func f1() {
  fmt.Println(f1)
}

定义一个没有参数但是有返回值的函数

func f2()int {
  return 333
}

注意在go中定义的函数变量名是相当于声明了一个变量,go返回值可以命名也可以不命名。命名后的参数在return可以不用写参数名

func f3(x int,y int)(z int){
  z = x +y
  return //这里就可以省略z返回值的名称
}

多个返回值

func f4()(int ,string){
   return 1,"天津"
}

参数类型的简写

func f5(x,y int)int {
  return x+y
}

可变参数

//注意可变参数必须写到函数参数的最后
func f6(x string,y ...int){
  fmt.Println(x)
  fmt.Println(y) //这里的y是slice切片,具体类型根据你定义的参数类型一致,可以向y里传入多个数值
}

go语言函数没有默认参数概念,参数要么传参要么不传参,就是要么用函数要么就不用函数

匿名函数

没有名字的函数

func(x, y int) {
  fmt.Println(x + y)
}

使用函数

创造一个变量接受函数即可

var f1 = func(x, y int) {
  fmt.Println(x + y)
}


func main() {
  f1(10,20)
}

匿名函数的使用

匿名函数一般出现在函数的内部

func main(){
  f1 func(x, y int) {
  fmt.Println(x + y)
  }
  f1(10,20)
}

如果只是调用一次的函数还可以简写成立即执行函数

func main() {
  func() {
    fmt.Println("helloworld")
  }()
}

也可以传参

func main() {
  func(x,y int) {
    fmt.Println(x +y)
    fmt.Println("hello world")
  }(100,200)
}

标签:函数,int,fmt,func,Println,返回值
From: https://www.cnblogs.com/suknna/p/17103265.html

相关文章

  • C语言填空:函数递归应用
    #include<stdio.h>//数列的第12项值为1,此后各项值均为该项前二项之和,计算数列第30项的值intf(intn);main(){printf("%d",【1】);getchar();}intf(i......
  • 字符串与内存函数(2)
     本篇文章和大家继续分享一些与字符串和内存操作相关的函数,本次分享的函数包含有strerror函数,memcpy函数,memmove函数以及memcmp函数和memset函数。以上几个函数就是我们本......
  • 库函数的模拟实现
    1.1模拟实现strlen注意:参数指向的字符串必须要以'\0'结束。函数的返回值为size_t,是无符号的。1.2代码如下:三种方式:方式1://计数器方式intmy_strlen(constchar*str){in......
  • 1.5函数的调用机制
        哪怕是高级语言编写的程序,函数调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因此单纯的跳转指令无法......
  • C语言填空:10进制转2进制输出函数
    #include<stdio.h>//将10进制正整数转化为二进制voiddec2bin(intm){intbin[32],j;for(j=0;【1】;j++){bin[j]=【2】;m=【3】;......
  • React函数式组件使用@emotion时一定要注意的问题!
    怎么说呢,一个坑,踩了两天,总觉得是useSate和input的传值方法问题在useMemo和useCallback反复测试问题最后没办法,通过最傻方式,一点点注释代码,发现了问题constContainer=......
  • 【SQL Server】中的日期函数和日期数据类型
    SQLServerDate函数SQLServer的重要日期函数包括:函数描述参数含义GETDATE()返回当前的日期和时间 DATEPART(datepart,date) 返回日期/时间的单独部分......
  • 普通型生成函数
    普通型生成函数一、定义构造这么一个多项式函数\(F(x)\),使得\(x\)的\(n\)次方系数为\(f(n)\)。\[F[x]=\sum^\infty_{i=0}f(i)\x^i\]二、格式声明==为逻辑......
  • 定义一个函数,实现反向输出一个整数
    defreverse():number=eval(input("请输入一个整数"))a=number//10000b=(number%10000)//1000c=(number%1000)//100d=(num......
  • Python-函数
    内建函数help()help(list.append)  #显示list的append方法的帮助 input()name=input('pleaseenteryourname:')#读取输入,将读取到的数据赋值给指定变量 rang......