go课堂笔记20210913
2021.9.13 go
woc 这台风tm大到雨伞都废了。。。
结构化设计
1.自顶向下的分析方法
2.模块化设计
3.结构化编码(顺序、选择、循环)
OO
OO = 算法 + 抽象数据类型
程序 = (对象、消息、对象、消息…)
封装(数据隐藏)、继承和重用、多态
Go
兼具python等动态语句的开发速度和c/c++等编译语言的性能和安全性
Google在07年开发的一种开源语言
java由于OO框架->八股设计
Go背景
当前编程语言对多核并发支持不好
程序规模大,编译速度慢
为OO而OO
少即是多,Go语言只有25个关键字
Go完成了单机单核的C语言到互联网时代多核环境的通用编程语言的蜕变
GO特性
静态编译型,不同再下载库
少即是多
强调组合,OOP,而不是继承
duck模型的非侵入式接口:java申明接口只是未来可能要用的(臃肿),Go不显式申明接口
原生支持并发编程
支持多OS和体系结构的交叉编译
大量使用内置函数和接口提高复用
支持和C语言相互调用的机制(CGO)
Go编码类型
命令源码文件
库源码文件(阅读学习)
测试源码文件
helloworld
main包表示特殊包名,表示不是库
import “fmt”:format格式化输出
由于是静态编译,所以.exe远大于.go
build生成其他平台可执行程序
编写测试
xxx_test.go,与被测试同一个包
以Test开头,只有一个参数
got,want进行比较,用errorf判断, 相等显示为pass。。。
修改代码后进行回归测试
开发环境
ide、git、curl
VS Code
微软,跨平台,开源,低资源占用,免费编辑
特性:大多数开发语言,排版,定义,调式(断点、监视),执行。。
使用Go mod代理安装Go 插件(否则要翻墙)
Git
管理linux内核版本控制的分布式版本控制系统
开发者可以在本机拷贝一个完整的Git创建本地分支,进行本地提交并最终合并master
Github是面向开源以及私有软件项目的托管平台,只支持Git版本库格式,求职简历的重要内容(维护自己的开源软件)
Gitee:面向中国的独立开放源代码托管平台
curl
command line for transferring with urls
Go语言语法
编译器词法分析将src分割为若干个token:关键字,标识符,分隔符,字面量
关键字(25)
包:import package
实体申明:chan const func interface map struct type var
流程控制:break case continue default defer else fallthrough for go…
标识符
预申明:bool,int, make, new, panic(函数), true, iota(计数器), nil, _(空白标识符)
用户自定义:不能以数字开头、不含@$%等符号、大小写敏感
部分首字母大小写有特殊含义(外部可用性)
字面量
固定值:基本类型、复合类型
通常放在表达式右边或函数参数
变量
代表某块内存区域,名字,类型,值,存储(堆or栈),生存期(创建和回收),可见性(作用域)
分开两个步骤:声明+赋值
堆&栈
堆来自于OS提供的一个空间,new的时候调一块空间(有借有还,再借不难),不同程序共享的
Q:内存占很大且不释放?
A:先生成一个很大空间运行程序
栈是函数里面的一个空间,加载一个函数,大小通常比较固定的,压到main函数之上
变量申明:
var identifier dataType
分配空间,初始化为该类型的0值,不能多次申明同名变量,子可以遮盖父
变量在函数中申明了未使用也会出现编译错误(全局OK)
var(e boolf stirng
)
fmt.printf("a address: %v value: %v \n", &a, a)
变量赋值
强类型,确认类型
静态语言,支持编译时自动推断类型
申明赋值同时进行可忽略类型
可用函数内部 := 短类型申明
var a int = 1 //True
var b = 2 //True
a, b = 1, 2 // inside func True
c := true // inside func True
总结:
1.goland配置一下无限使用周期
2.跑一下go课本上的样例
go课堂笔记20210913相关推荐
- AI算法课堂笔记20210913
20210913 AI算法课(吴飞教授) 1.新一代人工智能历史发展 2.AI+X 3.AI人才培养 4.结论 1.历史发展 自动机(机器人偶) 从可计算到不可计算 任何可计算的函数都可以用图灵机计算 ...
- 管理系统中计算机应用第四章重点,管理系统中计算机应用课堂笔记第四章(4)...
管理系统中计算机应用课堂笔记第四章(4) 分类:自考 | 更新时间:2016-07-08| 来源:转载 这个分析和抽象工作可分以下三步进行: 5.2.1数据流程图的绘制 数据流程图既是对原系统进行分析 ...
- AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新
AI公开课:19.04.10颜水成-360副总裁<人工智能:观察与实践>课堂笔记以及个人感悟 导读 颜水成,新加坡国立大学副教授.360集团副总裁.人工智能研究院院长. 颜水成 ...
- AI公开课:19.05.16漆远-蚂蚁金服集团CF《金融智能的深度与温度》课堂笔记以及个人感悟—191017再次更新
AI公开课:19.05.16漆远-蚂蚁金服集团CF<金融智能的深度与温度>课堂笔记以及个人感悟-191017再次更新 导读 漆远,麻省理工学院博士后,39岁被评为美国普渡大 ...
- AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)
AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(二) 导读 讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...
- AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)
AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(一) 导读 讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...
- AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟
AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读 浣军博士,汉族,1975年出生于江苏苏州, ...
- AI公开课:19.05.15施尧耘-达摩院量子实验室主任《量子计算:前景与挑战》课堂笔记以及个人感悟
AI公开课:19.05.15施尧耘-达摩院量子实验室主任<量子计算:前景与挑战>课堂笔记以及个人感悟 导读 施尧耘1997年本科毕业于北京大学,后在普林斯顿大学取得计算机科 ...
- AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟
AI公开课:19.05.22 Aya Soffer-IBM AI Tech VP<Advanced, scalable, and trusted AI >课堂笔记以及个人感悟 Introd ...
最新文章
- 漫画 | 阿姨,我不想努力了
- 第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅组别 全国选拔赛成绩公布说明
- 在Rails中撤消脚手架
- python中eval与json.loads对json的处理
- linux 用户身份与进程权限
- Sql Server实用操作-存储过程精解
- java 自定义 operator_java8 自定义Collector
- VTK:可视化之NamedColors
- 如何在WinForm中发送HTTP请求
- 繁体字_如何简单快速地批量认识繁体字?
- pandas.plotting
- MAC微软远程桌面RDC不能全屏的的解决方法
- 基于华为SMProxy开发cmpp2.0(跳坑版)
- MySQL的索引失效问题
- html放大镜原理,简单的js放大镜功能的实现
- 使用Spire组件抛出异常The type initializer for 'spr857' threw an exception
- win10电脑虚拟机关闭 Device/Credential Guard
- 推荐系统论文阅读——Factorizing Personalized Markov Chains for Next-Basket Recommendation
- 蓝鲸智云6.1软件单机部署安装教程
- Linux不允许进程被杀,linux – 我的进程被杀了但我无法理解内核通知