过程式计算机语言,Go 语言程序设计——过程式编程(1)

Go 语言可以用于写纯过程式程序,用于写面向对象程序,也可以用于写过程式和面向对象相结合的程序

语句基础

Go 语言需要使用分号 ; 来作为上下文语句的分隔结束符,然而实际的程序中,很少使用分号,那是因为程序编译器自动帮我们处理了

有两个地方必须使用分号:

在一行中放入一条或者多条语句时

使用原始的 for 循环

自动插入分号的一个重要结果是,右大括号无法自成一行

内置函数:

92ba2c23861b

内置函数

gofmt 程序能够将 Go 代码标准格式化

如果一个变量已经存在,它就会直接被赋值,而不会新建一个变量,除非 := 操作符位于作用域的起始处,如 if 或 for 语句的初始化语句

类型转换

Go 语言提供一种在不同当相互兼容的类型之间相互转换的方式,这种方式非常有用并且安全

非数值类型之间转换不会丢失精度

对于数值类型之间的转换,可能会丢失精度或者其他问题

类型转换的语法:

resultOfType := Type(expression)

如果目标类型比源类型小,则可能丢失精度

类型断言

一种类型的方法集是一个可以被该类型的值调用的所有方法的合集

Go 语言中的 interface{} 类型用于表示空接口,即一个方法集为空集的类型的值

我们可以使用类型开关、类型断言、或者 Go 语言的 reflect 包类型检查将一个 interface{} 类型的值转换成实际数据的值

类型断言:

resultOfType, boolean := expression.(Type) // 安全类型断言

resultOfType := expression.(Type) // 非安全类型断言,失败时 panic()

分支

Go 语言提供 3 种分支语句,即 if、switch 和 select,分支也可以通过一个映射来达到,它的键用于选择分支,值则是对应的函数

if 语句

if 语句可能包含零到多个 else if 子句

语句中大括号是强制性

布尔表达式必须是 bool 类型,Go 语言不会自动转换非布尔值,因此必须用比较操作符

switch 语句

Go 语言有两种 switch 语句:表达式开关 和 类型开关

Go 语言的 switch 语句不会自动地向下贯穿,因此不需要在每一个 case 子句末尾添加一个 break 语句

在调用是需要通过显式地调用 fallthrough 语句

表达式开关

表达式开关语法:

switch optionalStatement; optionalExpression {

case expressionList1: block1

...

case expressionListN: blickN

default: blockD

}

如果有可算的声明语句,那么其中的分号是必要的

如果 switch 语句未包括可选的表达式语句,那么编译器会假设其表达式为 true

case 语句排序最有效的方法是,从头到尾按最有可能到最没可能的顺序列出来

原始用法:

switch suffix := Suffix(file); suffix { ∥ 原始的非经典用法

case ".gz":

return GzipFileList(file)

case ".tar":

fallthrough

case ".tar.gz":

fallthrough

case ".tgz":

return TarFileList(file)

case ".zip":

return ZipFileList(file)

}

经典用法:

switch Suffix(file) { // 经典用法

case ".gz":

return GzipFileList(file)

case ".tar", ".tar.gz", ".tgz":

return TarFileList(file)

case ".zip":

return ZipFileList(file)

}

很多情况下可以用于代替 if 语句,并且更加紧凑

类型开关

类型开关语法:

switch optionalStatement; typeSwitchGuard {

case typeList1: block1

...

case typeListN: blickN

default: blockD

}

类型开关守护(guard)是一个结果为类型的表达式

Go 语言可以通过鸭子类型支持多态

使用的类型开关守护与类型断言里的格式一样,即 variable.(Type),但是使用type关键字而非一个实际类型,以用于表示任意类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值