原文链接: 为什么说 Go 语言字符串是不可变的?最近有读者留言说,平时在写代码的过程中,是会对字符串进行修改的,但网上都说 Go 语言字符串是不可变的,这是为什么呢?这个问题本身并不困难,但对于新手来说确实容易产生困惑,今天就来回答一下。首先来看看它的底层结构: {代码...} 和切片的结构很像,只不过少了一...
原文链接: Go 语言切片是如何扩容的?在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一种引用类型,它有三个属性:指针,长度和容量。底层源码定义如下: {代码...} 指针: 指向 slice 可...
原文链接: Go 语言数组和切片的区别在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。另外,这个问题在面试中也经常会被问到,属于入门级题目,看过文章之后,相信你会有一个很好的答案。数组数组是同一种数据类型元素的集合,数组在定义时需要指定长度和元素...
在平时的开发过程中,避免不了需要获取 Model 中的字段列表。那需要把所有字段都再复制一份吗?这样的话就太麻烦了,而且后期也不好维护。其实,Django 内置了一个方法,可以很轻松解决这个问题。下面以 User 表举一个例子。 {代码...} 通过 get_fields() 方法会返回一个 tuple,每个元素都是 model field 类型。这个结...