《Go语言从入门到精通》Go语言的基本语法与开发基础_第1页
《Go语言从入门到精通》Go语言的基本语法与开发基础_第2页
《Go语言从入门到精通》Go语言的基本语法与开发基础_第3页
《Go语言从入门到精通》Go语言的基本语法与开发基础_第4页
《Go语言从入门到精通》Go语言的基本语法与开发基础_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Go语言的基本语法与开发基础Go语言从入门到精通了解Go语言的语言要素和基本语法规范学习如何获取第三方包并编写自己的包01GRAMMAR02BUILTIN03PACKAGEtarget目标了解和掌握常用的内置函数目录导航4.14.24.3Go语言语法要素与代码规范代码格式化工具gofmt常用的辅助性内置函数……Contentsfor

i

:=

1;

i

<

10;

i++

{

fmt.Println(i)}

严格的语法规范for

i

:=

1;

i

<

10;

i

++{

fmt.Println(i)}

不光是语法,还有逻辑检查声明了变量但未使用都会报错语法严格的益处Go语言是一门比较讲究代码书写规范的语言付出的代价并非没有收获

减少出现编码阶段错误的概率使得代码更加高效Go语言文件编码Go语言代码文件要求UTF-8编码内部的字符串也是默认以UTF-8编码的可以很好地适应多语言语句、代码块与执行顺序for

i

:=

1;

i

<

10;

i++

{

a

:=

i

+

1

fmt.Println(a)}

代码块语句语句语句执行顺序语句分割for

i

:=

1;

i

<

10;

i++

{

a

:=

i

+

1

fmt.Println(a)}

语句末尾一般无需分号特殊情况也需要用到分号特殊情况:一般同一行内出现多条语句时,需要分号分隔语法记号Go语言中,每条语句是由语法记号(token)或者叫语法实体(entity)组成的。语法记号主要包括四类:标识符(identifier)关键字(keyword)操作符或标点符号(operatororpunctuation)数值量(literal)标识符标识符包括类型名、变量名和函数名等;标识符一般由字母和数字组成并且必须由一个字母开始;所有标识符(包括类型名、变量名、函数名等)均是大小写敏感的(大小写不同的会被认为是两个不同的标识符);预定义标识符(predefinedidentifiers)

int、float64、string、bool

等类型定义

true、false、nil

等固有取值

make、len

等内置函数注意,不要再次定义这些预定义标识符,即不要用这些标识符作为变量、函数等的名字。关键字固有的语法要素,主要包括break、default、func、interface、selectcase、defer、go、map、structchan、else、goto、package、switchconst、fallthrough、if、range、typecontinue、for、import、return、var注意:与预定义标识符不同操作符和标点符号操作符和标点符号是Go语言中用于组成表达式或者辅助表示一些语法含义的字符。主要包括+&+=&=&&==!=()-|-=|=||<<=[]*^*=^=<->>={}/<</=<<=++=:=,;%>>%=>>=--!....:&^&^=数值量数值量是在Go语言中对各种数值的表达形式,除了数字外,也包括字符串的值、布尔类型的值和其他复合类型的值等

123

//

代表一个整数

0xFFACDE

//

0x开头的16进制数字用于表达一个整数

32.8

//

代表一个浮点数(小数)

6.68e-11

//

代表一个用科学记数法表示的浮点数

88.3528e-11i

//

表示一个数学上的复数,前面是实部,后面是虚部

"Hello

world!"

//

字符串的表示形式

`Hello

world!`

//

用反引号`也可以用来括起字符串标识符的可见性小写字母开始的所有标识符均只能在代码本身所在的包中使用大写字母开头的标识符称作“被导出的”(exported)标识符,可以供外部其他包(包括主程序所在的main包)使用这里的标识符一般用于变量和函数,以及自定义类型目录导航4.14.24.3……Go语言语法要素与代码规范代码格式化工具gofmt常用的辅助性内置函数……Contentsgofmt的作用package

main

import

("fmt")

func

main()

{

a:=1

if

(a

>=

1)

{fmt.Println(a)}}

不规范的代码新版的写法,旧版是gofmt-wmain.go经过gofmt处理之后package

main

import

(

"fmt")

func

main()

{

a

:=

1

if

a

>=

1

{

fmt.Println(a)

}}规范的代码格式目录导航4.24.34.4……代码格式化工具gofmt常用的辅助性内置函数格式化输出函数fmt.Printf……Contents常用内置函数print和printlnlen和capmake、newcopy、deletepanic、recover目录导航4.34.44.5……常用的辅助性内置函数格式化输出函数fmt.Printf如何获取和使用第三方包……Contentsfmt.Printf函数

var

a

int

a

=

8

fmt.Printf("a=%d",

a)

优点:通过格式化符使得输出更灵活,书写更易组织常用格式化符整数格式化符%d16进制格式化符%x

和%X二进制形式格式化符%b浮点数格式化符%f其他的浮点数格式化符%e、%E、%g、%G布尔类型的格式化符%tUnicode码相关格式化符%c、%q

和%U字符串格式化符%s指针格式化符%p万能格式化符%v输出数值类型的格式化符%T格式化符加修饰a

:=

1.6879

fmt.Printf("%9.2f\n",

a)fmt.Printf("%9.6f\n",

a)fmt.Printf("%09.2f\n",

a)fmt.Printf("%-9.2f\n",

a)

转义符var

a

int

a

=

8

fmt.Printf("a=%d\nb=99%%\nc=?\n",

a)输出百分号本身输出回车符目录导航4.44.54.6……格式化输出函数fmt.Printf如何获取和使用第三方包如何定义和使用常量……Contentsgoget命令小提示:注意为避免GoModules干扰,设置环境变量GO111MODULE=off目录导航4.54.64.7……如何获取和使用第三方包如何定义和使用常量变量、函数等标识符声明的作用范围……Contents常量的概念与定义

const

a

=

10

a

=

17

fmt.Println(a)

将编译报错常量是表示不会变化的值iota常量const

(

black

=

iota

white

red

green

blue)

func

main()

{

fmt.Println(black,

white,

red,

green,

blue)}将为0,white为1,后面依次递增目录导航4.64.74.8……如何定义和使用常量变量、函数等标识符声明的作用范围tools包——编写自己的函数库Contents标识符的作用范围标识符有效范围的起始点在其声明之后,也就是“先声明再使用”;标识符有效范围的结束点在其声明后最近的代码块末尾,即到最近的右花括号为止;

同一级别的代码块内不可以重复定义一个标识符;标识符后如果有新开始的嵌套代码块(低一级的代码块),则该标识符在该代码块中仍然有效;但如果该代码块中再次声明了该标识符,则会被视为一个新的标识符,并会替代原标识符,但仅限于这个嵌套代码块之内有效。标识符的作用范围如果标识符不在任何代码块内(成对的花括号内),则从声明开始一直有效;即全局变量;

如果定义的全局范围标识符不是以大写字母开头,则最多只在代码所在的本包内有效;如果是以大写字母开头的,则可以被其他包访问,称作“被导出的”(exported)标识符;全局变量在定义的时候不能使用简化声明方式(既用“:=”声明并赋初值的方式)目录导航4.74.8……变量、函数等标识符声明的作用范围tools包——编写自己的函数库Contents自定义包的实现——GOPATH/src/tools/tools.gopackage

tools

import

(

"fmt")

func

Printfln(format

strin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论