四月十八号日报

今日学习内容

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:对云产品知识进行复习准备考核*

posted on 2019-10-07 22:13  SWTCZB  阅读(93)  评论(0编辑  收藏  举报

导航