zoukankan      html  css  js  c++  java
  • GO学习之 函数和方法

    一.函数的基本介绍

    1.为什么使用函数

    1)代码冗余

    2)不利于维护

    3)函数可以解决这个问题

    2.函数的定义

    为完成某一功能的程序指令(语句)的集合,称为函数。

    GO中,函数分为:自定义函数、系统函数

    基本语法:

    func 函数名 (形参列表)  (返回值类型列表)  {

    执行语句

    return 返回值列表

    }

    1)形参列表:表示函数的输入

    2)函数中的语句:表示为了实现某一个功能代码块

    3)函数可以有返回值,也可以没有

    举例:

    package main
    
    import "fmt"
    
    func cal(n1 float64, n2 float64, operator byte) float64 {
        // 一个计算的函数
        var res float64
        switch operator {
            case '+':
                res = n1 + n2
            case '-':
                res = n1 - n2
            case '*':
                res = n1 * n2
            case '/':
                res = n1 / n2
            default:
                fmt.Println("操作符号错误...")
            
        }
        return res
    }
    
    func main() {
        // 
        var n1 float64 = 1.2
        var n2 float64 = 2.3
        var operator byte = '-'
        result := cal(n1,n2,operator)
        fmt.Println("res=",result)
    
    }
    

    二.包的基本介绍

    1.包的引出

    (1)在实际开发中,我们往往需要在不同的文件中,去调用其它文件的定义函数,比如main.go

    中,去使用utils.go文件中的函数

    (2)不同开发者的函数名取的也是有可能相同的

    2.包的基本概念

    说明:go的每一个文件都是属于一个包的,也就是说go是以包的形式来管理文件和项目目录结构的。

    3.包的介绍

    包的三大作用

    1)区分相同名字的函数、变量等标识符

    2)当程序文件很多时,可以很好的管理项目

    3)控制函数、变量等访问范围,即作用域

    包的相关说明

    包需要开头首字母大写才能被使用。

    打包的基本语法

    package utils

    引包的基本语法

    import  “包的路径”

    4.一个基本引包的例子

    目录结果如上图

    其中utils.go内代码是:

    package utils
    
    import "fmt"
    
    func Cal(n1 float64, n2 float64, operator byte) float64 {
        // 一个计算的函数
        var res float64
        switch operator {
            case '+':
                res = n1 + n2
            case '-':
                res = n1 - n2
            case '*':
                res = n1 * n2
            case '/':
                res = n1 / n2
            default:
                fmt.Println("操作符号错误...")
            
        }
        return res
    }
    

    main.go内的代码为:

    package main
    
    import (
        "fmt"
        "gotest01/chapter_06/oa_demo/utils"   // 默认从src开始 
        // 注意这个utils是文件夹的名字
    )
    
    func main() {
        // 
        var n1 float64 = 1.2
        var n2 float64 = 2.3
        var operator byte = '-'
        result := utils.Cal(n1,n2,operator) // 这个utils是utils.go下package 后面的名字
        fmt.Println("result=",result)
    
    }
    

    demo绝对路径为:C:gostucodesrcgotest01chapter_06oa_demo

    导包的路径需要从src目录下开始导包

    最后运行结果为:

    5.包的主要事项和使用细节

    1)在给文件打包时,该包对应一个文件夹,比如utils文件对应的包名就是utils,文件的包名通常和文件所在的文件夹名一直,一般为小写字母。[不是一定的]

    2)当一个文件要使用其他包函数或变量时,需要先引入对应的包[包名是另外一个文件package后面的那个名字]

    1)引入方式1import “包名”

    2)引入方式2

    import (

    包名1”

    包名2”

    )

    3package 指定在文件第一行,然后是import指令。

    4)在import包时,路径从$GOPATHsrc下开始,不用带src,编译器会自动从src下开始引入。

    3)为了其他包的文件,可以访问到本报的函数的首字母需要大写,类似其他语言的类。这样才能跨包访问。[变量想要被其他包引用,变量也需要首字母大写]

    4)在访问其他包函数或变量时,其语法为: 包名.函数名  包名.变量名

    5)如果包名较长,GO支持给包取别名,语法为:

    import 别名 “包路径”

    6)在同一个包下不能有相同的函数名或变量名

    7)如果你要编译成一个可执行程序文件,就需要将这个包声明为main,package main

    这个是语法规范,如果是写一个库可以自定义。

    编译一个可执行文件,在$GOPATH下运行go build main包路径

  • 相关阅读:
    工作10年写不好一封邮件?
    邮件狂人告诉你:如何打造最强邮件处理流
    免费瘫软入院,付费发飙成壮汉,YoMail 想干嘛?
    我们要招5-10人,全要技术!
    如何有效的报告bug?
    黑科技 | 用实力打造邮件沟通新模式
    李叫兽去了百度,我们来聊聊营销
    你好,我想送你一本书
    上了这套密码锁,你就无敌了
    YoMail 邮箱客户端的社会化之路,起于邮箱,不止于邮件
  • 原文地址:https://www.cnblogs.com/hszstudypy/p/12656322.html
Copyright © 2011-2022 走看看