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相关推荐

  1. AI算法课堂笔记20210913

    20210913 AI算法课(吴飞教授) 1.新一代人工智能历史发展 2.AI+X 3.AI人才培养 4.结论 1.历史发展 自动机(机器人偶) 从可计算到不可计算 任何可计算的函数都可以用图灵机计算 ...

  2. 管理系统中计算机应用第四章重点,管理系统中计算机应用课堂笔记第四章(4)...

    管理系统中计算机应用课堂笔记第四章(4) 分类:自考 | 更新时间:2016-07-08| 来源:转载 这个分析和抽象工作可分以下三步进行: 5.2.1数据流程图的绘制 数据流程图既是对原系统进行分析 ...

  3. AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新

    AI公开课:19.04.10颜水成-360副总裁<人工智能:观察与实践>课堂笔记以及个人感悟 导读       颜水成,新加坡国立大学副教授.360集团副总裁.人工智能研究院院长. 颜水成 ...

  4. AI公开课:19.05.16漆远-蚂蚁金服集团CF《金融智能的深度与温度》课堂笔记以及个人感悟—191017再次更新

    AI公开课:19.05.16漆远-蚂蚁金服集团CF<金融智能的深度与温度>课堂笔记以及个人感悟-191017再次更新 导读         漆远,麻省理工学院博士后,39岁被评为美国普渡大 ...

  5. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(二) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  6. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(一) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  7. AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟

    AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读        浣军博士,汉族,1975年出生于江苏苏州, ...

  8. AI公开课:19.05.15施尧耘-达摩院量子实验室主任《量子计算:前景与挑战》课堂笔记以及个人感悟

    AI公开课:19.05.15施尧耘-达摩院量子实验室主任<量子计算:前景与挑战>课堂笔记以及个人感悟 导读         施尧耘1997年本科毕业于北京大学,后在普林斯顿大学取得计算机科 ...

  9. 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 ...

最新文章

  1. 解决jenkins控制台中文乱码问题
  2. 面向对象的JavaScript-009-闭包
  3. vue 多层双层全选_vue多级复杂列表展开/折叠及全选/分组全选实现
  4. 利用ASP.NET2.0向导控件一步步建立与用户的交互--------提高和自定义用户体验
  5. 命令行避免输入错误文件名_GitHub 60000+ Star 登顶,命令行的艺术
  6. 从源码编译InfluxDB
  7. MAC usb启动盘制作
  8. hihocoder1147 时空阵(bfs树+DP)
  9. 【APUE】孤儿进程与僵死进程
  10. 【nyoj - 890】 分东西 (水题 二进制)
  11. 华为热设计工程师待遇_沃得分享 | 华为校招青睐哪些江浙沪高校?
  12. ASP.NET的页面生存周期 [转]
  13. missing arguments for method toArray in trait Collection
  14. 这届年轻人正在背着你偷偷攒钱
  15. Lua 斗地主算法实现
  16. IntentFilter详解
  17. 并行计算、分布式计算、集群计算和网格计算的介绍,以及主要有哪些区别?
  18. debian9修改只读文件内容
  19. 入门nosql数据库(非关系型数据库)
  20. RFID反向不归零编码(NRZ)

热门文章

  1. set python比较随机_Python的Set和List的性能比较 + 两者之间的转换
  2. dns配置异常怎么修复_DNS错误怎么修复
  3. 限时赠票 | 2018 TOKENSKY 区块链大会 - 首尔站
  4. 浪潮英信服务器np5020m 系统安装,浪潮英信服务器NP3020M2新品拆解评测!
  5. lol游戏挂机软件_LOL手游热度断崖式下跌!情怀终究败给了习惯
  6. logistic回归模型评估-R实现
  7. Yeslab现任明教教主数据中心第二门课程UCS 视频教程下载
  8. <Principles of fMRI 1>课程笔记1 fMRI介绍与基本知识背景
  9. linux git 2.5.1安装,Git for Windows 2.5.1发布,同步Git 2.5.1
  10. pymssql模块使用指南