「学习笔记」Golang -- GoFrame框架

GoFrame 是一款模块化、高性能的 Go 语言开发框架。

准备工作

  1. 前置条件:已安装Go语言开发环境,已配置好GOROOT、GOPATH环境变量;GoFrame文档:https://goframe.org/
  2. 安装框架工具:GoFrame 框架提供了功能强大的 gf 命令行开发辅助工具,工具地址:https://github.com/gogf/gf/releases。 下载对应的包安装。推荐安装到GOROOT的bin目录中
gf -v ## 查看是否安装成功

项目初始化

配置代理,在cmd中输入

「学习笔记」Golang -- Go协程 与 通道

  • 进程:主要指运行在内存中的应用程序;进程是系统进行资源分配和调度的一个独立单位,一个进程由一个或多个线程组成。
  • 线程:线程是进程的一个实体,这些线程共享同一个内存地址空间,线程是cpu调度和分派的最小单位。
  • 多线程:指在同一程序(一个进程)中有多个顺序流(线程)在执行。
  • 并行与并发:
    • 并行:指多个处理器或者是多核的处理器同时处理多个不同的任务(物理上的同时发生)。
    • 并发:通过cpu调度算法,一个处理器同时处理多个任务(逻辑上的同时发生)。

Go协程(goroutine)

Golang中,应用程序并发处理的部分被称作goroutineGo协程),由Go运行时管理的轻量级线程。 它可以进行更有效的并发运算。

「学习笔记」Golang -- 动态类型与反射

Golang没有类,而是松耦合的类型、方法对接口的实现。

  • 封装(数据隐藏):使用驼峰,public首字母大写,private首字母小写。
    • 1)包范围内的:通过标识符首字母小写,对象只在它所在的包内可见;
    • 2)可导出的:通过标识符首字母大写,对象对所在包以外也可见;
  • 继承:用组合实现:内嵌一个(或多个)包含想要的行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现。
  • 多态:用接口实现:某个类型的实例可以赋给它所实现的任意接口类型的变量。类型和接口是松耦合的,并且多重继承可以通过实现多个接口实现。Go 接口不是 Java 和 C# 接口的变体,而且:接口间是不相关的,并且是大规模编程和可适应的演进型设计的关键。

动态类型(Duck Typing)

  • 静态类型就是变量声明的时候的类型,如var age int其中int是静态类型。
  • 动态类型是在运行时才能确定具体的数据类型。
var i interface{}  //i 的静态类型就是 interface{}
i = 18             //i 的静态类型就是 interface{},动态类型变成了 int 类型。
i = "Golang Learn" //i 的静态类型就是 interface{},动态类型变成了 string 类型。

动态类型的优势在于它的灵活性。我们可以编写通用的代码来处理不同类型的数据,动态类型常用于需要处理多种类型数据的场景。 例如,我们编写一个函数,需要接收不同类型的数据,并针对这些数据执行相应的操作。 使用动态类型,我们可以将函数参数定义为一个接口类型,从而使得函数能够接收任意实现该接口的类型。

0%