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

语句基础

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

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

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

使用原始的 for 循环

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

内置函数:

内置函数

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关键字而非一个实际类型,以用于表示任意类型

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

  1. c语言数学语文英语成绩编程,输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分...

    输入10名学生的序号和每个学生三门功课(数学.英语.C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后用折半查找法查找有没有平 ...

  2. c语言程序设计和windows编程区别是什么呢。

    c语言程序设计和windows编程区别是什么呢. c程序设计和用c语言windows编程有什么区别呢.?我怎么都是c里面好多不一样,要不不一样那学c程序有什么用呢. C程序设计仅仅只是讲C语言自身的规 ...

  3. c语言程序设计实践教程编程题8.3,C语言程序设计教程(21世纪计算机科学与技术实践型教程)...

    <C语言程序设计教程>是根据 教育部高等学校计算机科学与技术教学指导委员会非 计算机专业计算机基础课程教学指导分委员会提出的 <非计算机专业计算机基础课程教学基本要求>和< ...

  4. c语言程序设计 滴水视频,编程达人滴水中级班视频教程

    Java视频教程详情描述: <编程达人滴水中级班视频教程>编程达人来了,N部视频教程让你成为真正的编程达人,融会贯通将是本套视频最大的目的. Java视频教程目录: ├─APC机制 │  ...

  5. c语言程序设计武汉大学出版社编程题答案,C语言及程序设计基础

    商品描述: [图书描述]: 本书系统地介绍C语言的实验指导和习题解答.全书共分三个部分,下面简单介绍这些章节的内容: 第一部分:C语言上机指导 这个部分包括从第l章到第6章的内容.第l章到第4章分别介 ...

  6. 2022中央财经大学《901C语言程序设计》考研编程题回忆版

    在过去的22考研中,计算机专业内卷严重,像中央财经大学的电子信息学院更加悲惨,成功上岸的分数都在400+ 分享去年考研的两道编程题 1.2000以内的所有全对数,全对数是指一个数X除了它本身意外所有的 ...

  7. 中国大学MOOC C语言程序设计--第四周编程题

    1 检测用户错误输入(4分) 题目内容: 根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果: 123a↙ Input error ...

  8. Python语言程序设计第二章编程题

    编程题1:获得用户输入的一个整数N,计算并输出N 的32次方 n = int(input("请输入一个整数N:")) result = n**32 print("N的32 ...

  9. 中国大学慕课 大连理工大学 C语言程序设计 第四周编程作业 选择结构程序设计

    1 大小写字母转换(6分) 题目内容: 编写程序,输入一个字符,若是大写字母,转换成小写字母,若是小写字母,则转换成大写字母输出 输入格式: getchar() 输出格式: putchar( 输入样例 ...

最新文章

  1. 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹
  2. 如何用python实现自动化办公_python自动化办公操作PPT的实现
  3. IBM服务器raid5崩溃数据恢复方案及过程
  4. NET使用了UpdatePanel后如何弹出对话框!
  5. python利器跟python一样吗-VS code for python开发利器
  6. 开源分布式中间件 DBLE Schema.xml 配置解析
  7. java returnaddress_Java虚拟机规范】Java SE 7虚拟机结构
  8. Julia程序设计3 数组1 创建、初始化、属性与访问
  9. HALCON示例程序measure_ring.hdev齿轮齿宽度测量
  10. java queue源码_java源码解读--queue
  11. Wireshark常用过滤使用方法
  12. TypeScript类型推论(Type Inference)
  13. linux 没有 分区表,在Windows下分区,安装linux,分区软件肿么没有linux swap 这个选项?...
  14. idea一直在 downloading plugins for ... 失败
  15. [2018.07.12 T2] B君的第二题
  16. python aiml开发文档_Python AIML搭建聊天机器人
  17. umijs多环境配置_项目实战-UmiJS开发(附带qiankun)
  18. Android studio xpose的使用
  19. Qt OpenGL加载OBJ模型
  20. 【Python数据分析】<数据分析工具>基于Excel的数据分析

热门文章

  1. 经典的W2kXP添加删除硬件
  2. 【转载】完全版线段树 by notonlysuccess大牛
  3. 【项目管理】项目总结会要点和内容
  4. 一种简明易懂的专利侵权分析报告表单样式
  5. 图片分类-K近邻分类器
  6. Sniffer报文放送
  7. 微信ios签名报错config:fail
  8. Typora下载和使用
  9. ubuntu14.04使用reaver跑pin码
  10. 思科9124光纤交换机配置管理使用手册