编程语言通用规则和概念
✍️ 正文
基础元素和模式
-
编程语言的基本模式
- 接口化 interface提供接口
- 让客户端Client,生产商Producer,服务商Server知道这个统一的方法
- 设立标准
- 一个对象里需要使用另一个对象的方法,必须先定义一个interface接口
- 类似于双方先拟定个协议
- Struct or Class 发布结构体或者类
- 用属性和方法描述一类相同的事物
- 方法的声明,告知返回值
- 而具体的实现放在实例中
- 类是用现实的方法描述这一规律,而结构体是用更抽象的方式描述这一规矩。
- 类的继承,可以再细化分类
- 而结构体和类的实例化,则是分配内存,创造实例
- 用属性和方法描述一类相同的事物
- 结构体的指针
- 用New来实例化结构体的实例,返回一个结构体指针
- 并给结构体中的参数赋值
- 结构体指针传参,让所有有关该结构体实例的客户,服务都维护统一的实例内存。
- 将结构体的方法实现和结构体声明分离
- Method or Func 方法或函数去实现结构体或者类声明的方法
- 业务逻辑,流程控制
- 类库,框架
- 类库:程序块,一个个功能模块,功能模块组成程序
- 框架:控制权转移的类库
- 我们调用类库,但是框架调用我们
- 容器
- 回调函数:多态的实现原理
- 函数指针
- 本质:函数指针。通过地址,在某一特定位置,调用函数。
- 在程序中,定义一个函数,但不显示调用。当某一条件满足时,该函数由操作系统自动调用。
- 模块,包,类,对象
- 定义了你需要的大部分函数
- 使用标准库
- 接口化 interface提供接口
-
关键字、保留字:
- 运算符与表达式
- 基础数据类型:int、float、string、bool、byte(unit8类型,代表一个ASCII 码的一个字符)、rune(代表一个utf-8字符)、iota(常量生成器)、complex(复数)
- 复合数据类型:复合类型关键字+基本类型
- array 列表:[...]int{1, 2, 3};或者叫list
- slice 切片:[]int{1, 2, 3} 、 s[ : ]
- map 键值对、字典类型: map[key_type]value_type
- channel 通道 chan
- pointer 指针、address 地址:p *int := &a 指针类型和取地址类型
- 初始化内存空间:make + slice、map、chan
- 类型:variable 变量 var、constant 常量 const、function 函数 func、struct结构体、interface接口、type 类型
- 作用域:private 私有、public 公用、block 块,在函数体中
- 包相关: package、import、from、as
- 函数相关:default、select、defer、map、range(和map都可以循环遍历) 、return
- 逻辑判断:if、else、switch、case;true、false、nil、not
- 循环:for、while、break、goto、continue、fallthrough
- 多线程:go、chan
- 异常:try … catch …、error
- 函数:make、len、cap、new、append、copy、delete、complex、real、imag、panic、recover
- // 后面的内容一般为注释,提供解释信息和备注。
-
**函数 Func:**参数 parameter、返回值 return value、运算符
参数(输入):形参、实参、默认参数、关键参数
返回值return(输出)。一个函数要不就是完成了某些任务,比如输出,打印,播放… 要么返回值给其他用。
函数、变量取名技巧:
小驼峰:除第一个单词,其它单词首字母大写
大驼峰:每个单词的首字母大写
下划线:名称中每个逻辑断点都用一个下划线来分割
匈牙利:变量名=属性+类型+对象描述
RESTFul
一般程序语言内置包
标准输入输出 fmt、io 输入输出流、os 系统包、time 时间、bufio
标准库stdin,stdout,stderr
- sys
- os
- 特殊的方法
- init
- del
- lambda匿名函数,它是对一段代码的引用。可以作为参数传递。
- 没有名字
- 输入,参数的传递
- 输出,表达式的输出
- 例子:add=lambda x, y: x+y
- exec
- eval
- assert
- repr
- 迭代器itertools模块