数据结构


数据结构

  • 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成
  • 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中
  • 比如:列表、集合和字典等都是一种数据结构(他们在内存中存储方式不同)
  • N.Wirth: ”程序 = 数据结构 + 算法“

数据结构的分类

  • 数据结构按照其逻辑结构可分为线性结构、树结构、图结构
    • 线性结构:数据结构中的元素存在一对一的相

Read more

算法基础


算法基础

  • 算法概念

  • 时间复杂度

  • 空间复杂度

  • 复习:递归

算法(Algorithm):一个计算过程,解决问题的方法

Niklaus Wirth:"程序 = 数据结构 + 算法"

01

时间复杂度

02

类比生活中的一些事件估计时间
- 眨一下眼             一瞬间/几毫秒
- 口算"26+68"         几秒
- 烧一壶水             

Read more

day04 课上笔记-面向对象、错误、io、反射


面向对象

  • go没有class关键字,oop,但是我们可以把go当做面向对象的方式来编程
  • go没有类,可以把struct作为类看待
  • 类的方法是啥: 给struct绑定的方法

继承

  • 通过结构体的匿名嵌套,继承对应的字段和方法,举例 ```go package main

import ( "log" )

type Person struct { Name string A

Read more

day04课件笔记-函数、结构体


今天的内容大纲

  • 函数 defer和panic
  • 结构体 重点
  • 面向对象
  • 接口
  • 错误处理
  • io操作
  • 反射?

今天的内容重点

  • 函数 defer和panic 次重点
  • 结构体 重点
  • 接口 次重点
  • io操作 次次重点

今天的作业

  • 考察点:map增量更新+接口+结构体方法
    • jobManager 增量更新job
    • 要求写接口,有start stop hash三个方法
    • 写两个结构体,分别实现上述结构

Read more

day04 课上笔记


defer 与 panic

压栈 遇到panic出栈 后进先出,先进后出

package main

import "fmt"

func main() {
   defer_func()
}

func defer_func() {
   defer func() {
      fmt.Println("1")
   }()
   defer fun

Read more

day03 课件笔记


上次作业讲解

  • 切片元素的去重 ```go package main

import "fmt"

// - 切片元素的去重 // 使用map的key func main() { s1 := []string{"abc", "def", "abc", "okok", "okok"}

m := make(map[string]struct{})
for _, i := range s1 {
 

Read more

day03 go中map及函数


切片 == 列表 map == 字典类型 线程不安全 要变成安全的就需要加锁 具体set.go 太麻烦 提供了更加简便的方法 互斥锁 HcMutex.Lock() HcMutex.UnLock() 同一时间只能一个执行 获取到锁 读写锁 RLock() unRLock() 写锁 Lock() UnLock()

package main

import (
"f

Read more

day01 go基础


设计模式、算法
设计模式之美 碰到了才有感觉 工厂模式、策略模式 设计模式 多if 问题

学习编程方法:不纠结语法,要学习技巧和讲师经验 去突破项目 重点的语法掌握即可

agenda: 今日目标:用go能够写一些简单的脚本任务 学习go必备知识 1、安装及开发环境介绍 2、变量&常量 3、整型、浮点型、布尔型、字符串、切片入门 4、数据类型的相互转换 5、指针的介绍及使用场景 大

Read more

day02 go基础语法


课前调查

运维开发or 纯rd

go语言基础掌握情况

上课风格

  • 代码手敲 ,最好一起
  • 重点知识手敲,敲完群里同步

基础知识的重要性

goland 讲解

  • 先设置一个GOPATH
  • 在GOPATH中创建一个project,不要带中文
  • 到目录下 go mod init
  • 设置两个环境变量
  • GO111MODULE=on
  • GOPROXY=https://goproxy.io,direct
  • 新建go文件,

Read more

day04 模块相关


今日概要:

  • 老案例新用法( Java ),直播课里嵌套的删除。
  • 环境变量
  • 开源模块(列表、元组底层原理)
  • 优秀的模块哪里找?
  • 五大案例

    • SDK,第三方服务(公司),例如:人脸识别、语音合成。
    • 日志,Logging。
    • 反射相关(工厂模式、配置文件)
    • 进程 & 线程 & 协程
    • 第三方组件,例如:软件、python代码、程序。
      • 缓存
      • 发布和订阅
      • 消息队列
      • Celery
  • 面试题

Read more