- 博客(9)
- 收藏
- 关注
原创 Go学习的一点心得
比如说下面这段程序for i, tl := 0, len(t); i < tl; i++{ if t[i].method != httpMethod{ continue }}初始化的时候就赋值了tl, tl 等于 t 的长度,这样避免了每次循环动态的计算长度,减少了内存消耗。比下面这样写好for i := 0; i< len(t); i++{}...
2021-10-31 14:12:11 199
原创 Go 结构体指针初始化
今天遇到一个这样的问题同样都是查询,上面的就不需要new, 而下面的就需要new请教了一下大佬,下面的是一个结构体指针,需要分配内存才能使用在别的地方也找到了印证,(尽管之前博客提到过这个问题,)官方文档// The new built-in function allocates memory. The first argument is a type,// not a value, and the value returned is a pointer to a newly// all
2021-10-20 22:48:35 2037
原创 Go基础——网络编程
16网络编程16.1tcpclient建立与服务端的链接进行数据收发关闭链接func main(){ //与服务端建立连接 conn, err := net.Dial("tcp", "127.0.0.1:20000") if err != nil{ fmt.Printf("dial failed:%v\n", err) return } input := bufio.NewReader(os.Stdin) for{ s, err := input.ReadString
2021-10-11 21:56:18 71
原创 python面试题
1.运算符is和==有什么区别is比较两个变量内存地址是否相同==比较的是两个变量的取值时候相同2.a = {1,2,3} b = {3,2,1} a==b ? a is ba == bTrue因为集合无序a is bFalse3.python对象中的浅拷贝深拷贝import copya = ('a', 'b', 'c')b = ac = copy.copy(a)d = copy.deepcopy(a)print(b,c,d)print(id(b))print
2021-10-11 21:55:02 168
原创 Go基础——反射和并发编程goroutine
14反射在Go语言中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和reflect.Value两部分组成,并且reflect包提供了reflect.TypeOf和reflect.ValueOf两个函数来获取任意对象的Value和Type。在反射中关于类型还划分为两种:类型(Type)和种类(Kind)。因为在Go语言中我们可以使用type关键字构造很多自定义类型,而种类(Kind)就是指底层的类型,但在反射中,当需要区分指针、结构体等大品种的类
2021-10-11 21:54:17 114
原创 Go基础——包管理和接口
12.包一个包可以简单理解为一个存放.go文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。一个文件夹下面直接包含的文件只能归属一个package,同样一个package的文件不能在多个文件夹下。包名可以不和文件夹的名字一样,包名不能包含 - 符号。包名为main的包为应用程序的入口包,这种包编译后会得到一个可执行文件,而编译不包含main包的源代码则不会得到可执行文件。变量名首字母为大写则,它是共有的,对外可见12.1不在同一个项目下src
2021-10-09 21:13:30 219
原创 Go基础——结构体
11.结构体11.1自定义类型自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义type newint int通过type关键字的定义,newint就是一种新的类型,它具有int一切的特性。11.2类型别名type byte = uint8type rune = int32区别:type newint inttype nwt = intfunc main() { var a newint var b nwt fmt.Printf(
2021-10-09 21:08:19 193
原创 Go基础——指针
10.指针go语言是值传递, 例子如下func main() { // a := 100 // b := &a // 取a地址,将指针保存到b中 // fmt.Printf("type of b:%T\n", b) // c := b // 根据指针取值 // fmt.Printf("type of c:%T\n", c) // fmt.Printf("value of c:%v\n", c) x := 10 changeValue(x) fmt.Println("x:",
2021-10-09 21:05:32 117
原创 Go基础——map与函数
8.mapkey-value, 无序,引用类型引用类型必须初始化以后才能使用,只是var定义了,并不能直接使用8.1定义map[KeyType]ValueTypemap类型的变量默认值是nil需要使用make来分配内存make(map[KeyType]ValueType, [cap])cap表示map的容量,该参数不是必须的,但应该在初始化的时候就为其制定一个合适的值score := make(map[string]int, 8)score["python"] = 1score["j
2021-10-03 21:56:24 347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人