码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【GO语言基础】函数


    系列文章目录

    【Go语言学习】ide安装与配置
    【GO语言基础】前言
    【GO语言基础】变量常量
    【GO语言基础】数据类型
    【GO语言基础】控制流
    【GO语言基础】函数

    文章目录

    • 系列文章目录
    • 函数
      • 基础函数
      • 调用
    • GoLang API(包)简单介绍
      • 标准库:
      • 第三方库:
      • 自定义库
      • 使用cdn加速拉取第三方包


    函数

    函数的定义:

    func functionName(parameter1 type1, parameter2 type2, ...) returnType {
        // 函数体
        // 可以执行一系列操作
        return returnValue // 可选
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    基础函数

    基本函数

    func Add() {
    }
    
    • 1
    • 2

    错误写法:注意不要将第一个括号放新行

    func Add()
    {
    }
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    简单写一个累加函数并调用:

    package main
    
    import "fmt"
    
    // 累加函数
    func Add(a int) int {
    	var sum int
    	for i := 1; i <= a; i++ {
    		sum += i
    	}
    	return sum
    }
    func main() {
    	
    	fmt.Println(Add(100))
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    调用

    调用基本格式:pack1.Function(arg1, arg2, …, argn)
    Function 是 pack1 包里面的一个函数,括号里的是被调用函数的实参(argument):这些值被传递给被调用函数的形参(parameter)。

    调用函数时,只需使用函数名称和相应的参数值。如果函数有返回值,可以将其赋给一个变量。

    package main
    
    import "fmt"
    //定义Add函数
    func Add(a, b float64) float64 {
    	return a + b
    
    }
    func main() {
    	//调用Add函数,计算a+b
    	result := Add(5.15, 3.152)
    	fmt.Println(result)
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    函数作为参数调用:

    package main
    
    import "fmt"
    
    // 定义一个函数f2,它接受两个整数参数并返回它们的和、差、积
    func f2(a, b int) (int, int, int) {
        sum := a + b
        diff := a - b
        product := a * b
        return sum, diff, product
    }
    
    // 定义一个函数f1,它接受一个函数f作为参数,调用f并打印返回值
    func f1(f func(int, int) (int, int, int)) {
        // 调用传入的函数f
        result1, result2, result3 := f(5, 3)
        
        // 打印返回值
        fmt.Printf("Sum: %d, Difference: %d, Product: %d\n", result1, result2, result3)
    }
    
    func main() {
        // 将函数f2作为参数传递给函数f1
        f1(f2)
    }
    
    • 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

    在这里插入图片描述

    GoLang API(包)简单介绍

    Go语言API(Application Programming Interface)是Go语言提供的一组规范和定义,用于编写可重用的软件组件和应用程序。API定义了应用程序如何与底层系统、库和其他程序进行交互的细节。

    标准库:

    Go语言的标准库提供了许多基础的API,例如fmt(格式化输出)、os(操作系统接口)、time(时间处理)等。
    中文网API

    import "fmt"  
    fmt.Println("Hello, World!")
    
    • 1
    • 2

    第三方库:

    许多第三方库也提供了Go语言的API,例如Gin(用于构建Web应用程序的API)、Gorm(用于数据库操作的API)等。

    例如:使用mysql API
    
    go get github.com/go-sql-driver/mysql
    或
    import "github.com/go-sql-driver/mysql"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    自定义库

    你也可以创建自己的API来提供特定的功能或服务。这通常涉及创建一个包,并在其中定义函数、类型和变量。然后,你可以将该包发布到适当的存储库或与其他人共享。

    // mypackage包提供了自定义的API  
    package mypackage  
      
    import "fmt"  
      
    // MyFunction是一个自定义函数,可以在其他程序中使用  
    func MyFunction() {  
        fmt.Println("Hello from mypackage!")  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    使用自定义库时,你需要将该库导入到你的程序中,然后就可以使用其中的API了。

    使用cdn加速拉取第三方包

    使用Goland加速:
    在这里插入图片描述
    启用go模块集成
    在这里插入图片描述

    # 1. 七牛 CDN
    GOPROXY=https://goproxy.cn,direct
    # 2. 阿里云
    GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
    # 3. 官方
    GOPROXY=https://goproxy.io,direct
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加后应用:
    然后go get拉取需要的包即可
    在这里插入图片描述

  • 相关阅读:
    Python+OpenCV裂缝面积识别系统(部署教程&源码)
    广电行业没落了吗?生成式人工智能(AIGC)媒体应用标准联盟发布,超清化、移动化和智能化是发展趋势
    RPA机器人的使用条件是什么,可以使用在私域运营中吗?
    【iOS】UITableView的动态Cell高度(Masonry)
    【批处理DOS-CMD命令-汇总和小结】-环境变量、路径变量、搜索文件位置相关指令——set、path、where
    Centos安装Redis --使用wget
    Qt小项目 | 实现迅雷设置界面
    Java(100):Java操作ES增删查(RestHighLevelClient)
    HTML 基础
    stc8H驱动并控制三相无刷电机综合项目技术资料综合篇
  • 原文地址:https://blog.csdn.net/qq_39583774/article/details/132758349
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号