07 2024 档案
摘要:go 开启一个 web 服务 net 包,所有有关网络的都在net包下 package main import ( "fmt" "net/http" ) // 需要传入 :ResponseWriter, *Request func hello(rw http.ResponseWriter, requ
阅读全文
摘要:了解泛型 1.18后引入泛型(类型参数) 用户传入参数类型 场景使用很少 1.18以前使用 [反射] 来处理不同参数类型的问题 泛型也是使用 [] 和数组很像! 即:[T any]泛型的约束 泛型的作用:减少代码重复型,只针对不同类型相同功能的代码 泛型的类型:多个类型(类型不确定) 把静态语言 转
阅读全文
摘要:了解go的反射 反射:与 面向对象中的反射类似! 程序运行中,获取到的信息(变量:类型,值。 结构体:字段,方法) 可以通过反射机制,来改变变量和值 reflect 包, 实现反射 reflect.Type : 类型。 指示某一种类型 reflect.Value : 值 reflect.Kind :
阅读全文
摘要:了解channel通道 用于 协程(线程间的通信) 一个通道发送和接收数据,默认是 阻塞 声明通道 使用 make 声明通道 使用 var 定义 通道后,在使用make创建通道 不要通过共享内存实现通信,要通过通信实现共享内存 package main import "fmt" func main(
阅读全文
摘要:了解计算机原理 进程:计算机资源分配单位 线程:cpu处理单位 协程:以 特殊机制或者函数实现高并发,又称 轻量级线程 了解Goroutine Go Goroutine, go语言中的协程,实现并发。 关键字 go 初始大小 4k,随着程序执行自动增长和删除 实现多线程 并发 执行 package
阅读全文
摘要:【os】 os 基础使用 os.Stat package main import ( "fmt" "os" ) func main() { /* os 模块 */ // os.Stat 获取文件信息 :FileInfo fileInfo, err := os.Stat("/Users/dengshu
阅读全文
摘要:strings 字符串包 package main import ( "fmt" "strings" ) func main() { /* strings 字符串常用包 */ s1 := "goStudyGoDay" //s1[0] = "a" // 1.字符串不能通过下标修改数据 // 2. st
阅读全文
摘要:包管理 包的概念 go 中包的本质:文件夹,不同的文件夹可以存放不同的功能代码 go 的 源码服用就是建立在包机制上 main.go 全局只有一个。 package 包。 src : 保存项目源码路径,所有代码都用包的形式 package 声明包在哪里。不需要和文件夹名保持一致。尽量保持一致 一个目
阅读全文
摘要:panic 异常/恐慌 panic 产生异常 package demo import "fmt" func init() { fmt.Println("Exec Init 001") } func exec01() { /* 异常: 使用panic 处理异常 。 用的少,目的是为了减少 try ca
阅读全文
摘要:断言 格式: t,ok:=i.(T) 【t:就是i接口是T类型的,i:接口,T:类型】 // 断言失败不希望程序停止 func assertInt(i any) { i, ok := i.(int) fmt.Println(i, ok) if ok { fmt.Println("int类型") }
阅读全文
摘要:什么是接口 即:将一些共性方法集合在一起 方法的集合,不需要方法的具体内容 package main import "fmt" // 定义接口 使用 interface. 结合 struct 结构体使用 type USB interface { input() // 输入 方法 output() /
阅读全文
摘要:go 面向对象继承 Go语言的继承:结构体的嵌套 package main import "fmt" // 父类结构体 type Person struct { name string age int } // 子类结构体。 Student 使用了 匿名继承。表示 Student中拥有了 Perso
阅读全文
摘要:结构体 定义结构体 存储一组数据。 使用type声明结构体 package main import "fmt" type User struct { // 结构体 只 定义属性 name string age int sex string } func main() { /* 结构体:存储一组数据。
阅读全文
摘要:指针 什么是指针 * 取出指针变量中的值 & 取地址符号 package main import "fmt" func main() { /* 指针: - * 取出指针变量中的值 - & 取地址符号 */ // 1. 了解指针指向问题,指针取值 var a int = 10 // 将 a变量的内存地
阅读全文
摘要:什么是 map map 是什么。类似于字典 无顺序 键值对 引用类型 package main import "fmt" func main() { /* - map 是什么。类似于字典 - 特点: - 无顺序 - 键值对 - 引用类型 */ // 声明 map var map01 map[int]
阅读全文
摘要:切片 什么是切片 切片长度不固定,不设定长度 内置数据类型 三元素: 指针 slice 指定的开始位置 长度 slice 的长度 容量 slice 开始到最后的最大长度 package main import "fmt" func main() { /* 切片特点: - 切片长度不固定,不设定长度
阅读全文
摘要:数组 什么是数组 数组,即一维数组 数组是容器型数据结构 数组内的数据。必须是相同数据类型的数据 数组是需要定义大小的 数组的大小不可修改 数组是有序 使用any定义数组。该类型能接收不同类型的数组。 package main import "fmt" func main() { /* 什么是数组?
阅读全文
摘要:普通函数 定义 : func 函数名 {} 执行函数 : 函数名() 函数 类型 无参数函数 无返回值函数 有1个或者多个 参数 函数 有1个或者多个 返回值 函数 参数的传递 引用传递 切片 值传递 函数作用域 函数内部的定义的变量,只能作用到函数内部 全局变量,函数内也可以使用 go code
阅读全文
摘要:前言 流程控制: 分支判断 if ; else if ; else switch case select : channel 循环 for go to 跳转,当条件成立跳 某个地方执行 todo。 if package main import "fmt" func main() { /* 流程控制:
阅读全文
摘要:前言 动态语言类型 自动开辟数据空间,自动识别数据类型 python 静态语言类型 开辟内存空间,定义数据类型 c,java,go go 语言中的数据类型 /* - go 基本数据类型: - 布尔类型 - 数值类型 - 整型 : - 有符号:int,int8,int16,int32,int64. -
阅读全文
摘要:常量 package main import ( "fmt" "reflect" ) var c3 int func main() { // 变量 定义公式: var 变量名 数据类型 = 值 // 1. go 语言中定义变量 : 通过 var 关键字定义变量,后面跟上变量的类型 var name
阅读全文
摘要:# -*- coding: utf-8 -*- from flask import Flask, request, render_template_string import os import zipfile import tarfile app = Flask(__name__) @app.ro
阅读全文