其他分享
首页 > 其他分享> > go课堂笔记20210913

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 bool
	f 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课本上的样例

标签:OO,var,20210913,申明,类型,go,Go,课堂
来源: https://blog.csdn.net/weixin_40986490/article/details/120264973