• 四月十八号日报


    今日学习内容

    1:Go 程序的基本结构和要素

    1.1包的概念、导入与可见性

    包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容,每个Go文件都属于且仅属于一个包,每个Go应用程序都包含一个名为main的包,一个Go程序是通过import关键字将一组包链接在一起。有如下方式

    import "fmt"
    import "os"
    

    也可以这样

    import "fmt";import "os"
    

    或者

    import(
    	"fmt"
    	"os"
    )
    

    可见性规则:当标识符以一个大写字母开头,如Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(就像是C++的public);标识符如果以小写字母开头,则对包外是不可见的,但对整个包的内部是可见并且是可用的(就像C++中的private)。注意:如果你导入了一个包确没有使用它,则可能会报错,因为Go 的格言:“没有不必要的代码!”,(我在VSCode中发现会删除没有用的包)

    1.2函数

    定义一个函数最简单的格式

    func functionName()
    

    你可以在括号 () 中写入 0 个或多个函数的参数(使用逗号 , 分隔),每个参数的名称后面必须紧跟着该参数的类型。

    在程序执行并完成初始化后,第一个调用(程序的入口点)函数是main.main(如C/C++),Go的代码风格是左大括号{必须与方法的声明放在同一行,这是编译器的强制规定,否则你在使用 gofmt 时就会出现错误提示:

     syntax error: unexpected semicolon or newline before {`
    

    可以包含数据的变量(或常量),可以使用不同的数据类型或类型来保存数据。使用 var 声明的变量的值会自动初始化为该类型的零值。类型定义了某个变量的值的集合与可对其进行操作的集合。

    1.3类型

    类型可以是基本类型,如:int、float、bool、string;结构化的(复合的),如:struct、array、slice、map、channel;只描述类型的行为的,如:interface。

    结构化的类型没有真正的值,它使用 nil 作为默认值(在 C 和 C++ 中是NULL或 0)。值得注意的是,Go 语言中不存在类型继承。

    函数也可以是一个确定的类型,就是以函数作为返回类型。这种类型的声明要写在函数名和可选的参数列表之后,例如:

    func FunctionName (a typea, b typeb) typeFunc
    

    你可以在函数体中的某处返回使用类型为 typeFunc 的变量 var:

    return var
    

    一个函数可以拥有多返回值,返回类型之间需要使用逗号分割,并使用小括号 () 将它们括起来,如:

    func FunctionName (a typea, b typeb) (t1 type1, t2 type2)
    

    示例: 返回的形式:

    return var1, var2
    

    这种多返回值一般用于判断某个函数是否执行成功(true/false)或与其它返回值一同返回错误消息。

    我们可以使用下面的方式声明变量:

    var a IZ = 5
    

    这里我们可以看到 int 是变量 a 的底层类型,这也使得它们之间存在相互转换的可能

    如果你有多个类型需要定义,可以使用因式分解关键字的方式,例如:

    type (
       IZ int
       FZ float64
       STR string
    )
    

    每个值都必须在经过编译后属于某个类型(编译器必须能够推断出所有值的类型),因为 Go 语言是一种静态类型语言。

    :2:对云产品知识进行复习准备考核*

  • 相关阅读:
    iOS开发_当一个控件被添加到父控件中会调用
    iOS_判断应用在前台还是后台
    iOS开发_ SDWebImage先下载图片保存起来,需要时再调用
    WARNING ITMS90901: "Missing fullscreen support for the latest iPad mini display.
    iOS开发_显示带HTML标签的富文本
    iOS开发_WKWebView隐藏滚动条
    iOS_获取应用当前定位授权状态
    iOS开发_判断字符串是否为空的处理
    UIAlertController和UIActivityViewController在ipad中的兼容性问题
    npm run serve报错提示js堆内存不足
  • 原文地址:https://www.cnblogs.com/swtczb/p/11632601.html
Copyright © 2020-2023  润新知