Go语言中文网 为您找到相关结果 50

golang 使用 strings.Split 切割的注意

s := strings.Split("", "") fmt.Println(s, len(s)) s = strings.Split("abc,abc", "") fmt.Println(s, len(s)) s = strings.Split("", ",") fmt.Println(s, len(s)) s = strings.Split("abc,abc", ",") fmt.Println(s, len(s)) s = strings.Split("abc,abc", "|") fmt.Println(s, len(s)) fmt.Println(len("")) fmt.Println(len([]string{""})) str := "" fmt.Println(str[0]...阅读全文

博文 2014-10-04 19:27:43 984195889

Golang中使用set

Go中是不提供Set类型,Set是一个集合,set里的元素不能重复。 两种思路 2 basic set implementations 使用map实现 在Golang中通常使用map来实现set,map中的key为唯一值,这与set的特性一致。 简单实现,如下: set := make(map[string]bool) // New empty set set["Foo"] = true // Add for k := range set { // Loop fmt.Println(k) } delete(set, "Foo") // Delete size := len(set) // Size exists := set["Foo"] // Membership map的value值是布...阅读全文

博文 2020-03-26 07:32:40 DevilRoshan

golang mysql中timestamp,datetime,int类型的区别与优劣

golang time: https://golang.org/pkg/time/ golang中time包用法 http://blog.csdn.net/chenbaoke/article/details/41519193 首先 DATETIM和TIMESTAMP类型所占的存储空间不同,前者8个字节,后者4个字节,这样造成的后果是两者能表示的时间范围不同。前者范围为1000-01-01 00:00:00 ~ 9999-12-31 23:59:59,后者范围为1970-01-01 08:00:01到2038-01-19 11:14:07。所以可以看到TIMESTAMP支持的范围比DATATIME要小,容易出现超出的情况. 其次,TIMESTAMP类型在默认情况下,insert、update ...阅读全文

博文 2016-03-04 08:00:01 scut1135

go语言scan空值报错

http://xmarker.blog.163.com/blog/static/22648405720144743531420/ 今天使用go语言时,如果数据库里有空值,扫描出来报错,其中环境是这样的,数据库为postgresql9.3.2(其实和数据库无关),数据库里的数据如下: db_public=> \d t_tmp Table "usr_public.t_tmp" Column | Type | Modifiers --------+-----------------------------+----------- id | integer | not null name | character varying(30) | remark | text | time | timesta...阅读全文

博文 2016-04-19 18:00:01 leonpengweicn

golang语法总结(八):类型零值、类型别名、类型转换

类型零值 变量声明为某种类型后的值就为该类型的零值,它不是空值。通常数值类型默认为0,bool为false,string为空字符串 类型别名 比如: type text stringfunc main() { var t text = "hello world" fmt.Println(t)} 类型转换 Go语言不存在隐式转换,必须显式转换,并且只能在两种相互兼容的类型间转换,转换示例: a := 3.14b := int(a)fmt.Println(b)var c int32 = 256var d = float64(c)fmt.Println(d...阅读全文

博文 2016-02-22 14:00:07 QQ245671051

Go数据结构之集合

一、什么是集合集合就是不同对象的无序聚集。那么链表和集合有什么关系呢?我们来变个魔术。如下图是各种颜色组成的链表:​下面我们一步步把链表变成集合。第一步砍去链接​第二步去掉重复​第三步放到一个框里摇一摇就成集合了​可以看出集合有这些特点:无序:链表去掉链接,就是去掉元素间有序状态。不重复:去掉重复的玫红色。虽然说集合是一种数学概念,但在实际生活中无处不透露着集合。比如一个班级的学生是一个集合。班级里的男生又是一个集合。二、集合的结构​大卫哥这里为了简化概念的描述,继续用单链表来表示集合,但是在对集合做计算的时候单链表并不合适,数据量大的时候它的弊端就会显现,在讲到后面的数据结构和算法的时候,我们再回头来完善前面讲的数据接口的实现。三、接口说明及实现​2、Init初始化集合,本质是初始化链表。...阅读全文

博文 2017-12-09 01:29:48 rhan-zz

代码片段 - Golang 实现集合操作

package main import ( "fmt" "sort" "sync" ) type Set struct { sync.RWMutex m map[int]bool } // 新建集合对象 func New(items ...int) *Set { s := &Set{ m: make(map[int]bool, len(items)), } s.Add(items...) return s } // 添加元素 func (s *Set) Add(items ...int) { s.Lock() defer s.Unlock() for _, v := range items { s.m[v] = true } } // 删除元素 func (s *Set) Remove(it...阅读全文

博文 2016-09-04 14:00:00 golove

gorm中的公共方法判断reflect.Value的值是否为空值

``` func isBlank(value reflect.Value) bool { switch value.Kind() { case reflect.String: return value.Len() == 0 case reflect.Bool: return !value.Bool() case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return value.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr...阅读全文

博文 2017-12-23 10:48:19 fightingforbing

空中金融可靠吗?投资理财选空中金融可以吗?

  对于关注投资理财的朋友来说,互联网金融理财肯定是一种非常不错的模式。这种理财模式起点低、收益高,因而很受年轻人的青睐。不过,市面上的互联网金融理财平台非常多,我们该如何选择呢?最近比较出名的空中金融可靠吗https://www.kongzhongjr.com/?投资理财选空中金融可以吗?   空中金融可靠吗?投资理财选空中金融可以吗?空中金融是空中网针对当下日益增长的互联网金融业务需求,结合自身多领域跨界大战略而打造的综合金融服务平台。依托空中网作为上市公司的有力背书以及完善强大的资产管理能力,目前已迅速崛起成为新一代互联网金融平台中的翘楚。所以,空中金融还是值得推荐的。   空中金融可靠吗?空中金融可不可靠,与其风控措施密切相关。空中金融PEM复合风控系统在市面上很出名。根...阅读全文

【Go语言】【5】GO语言变量

变量也是语言的基本元素,与GO语言的常量类似,常量使用const关键字修饰,而变量使用var关键字修饰,变量声明的形式为var variableName variableType一、变量声明var age intvar phone intvar name stringvar address stringvar salary float64var consume float64var array [10]intvar frieds [20]string每个变量声明都使用一个var,上面的例子中能否能减少var的个数吗?前面说过GO是最懂程序员的,所以当然可以简写为:var ( age int phone int name string address string salary float64...阅读全文

博文 2017-02-09 15:58:07 qingkechina

beego controller响应json时如何忽略空值

beego controller响应json时如何忽略空值:如 ``` { "Id": 0, "Account": "admin", "Password": "", "RoleId": 0, "Status": "", "CreateTime": "0001-01-01T00:00:00Z", "CreateUserId": 0, "UpdateTime": "0001-01-01T00:00:00Z", "UpdateUserId": 0 } ``` 零值数据不返回 只返回 `{“Account”:"admin"}` 代码: ``` func (this *AdminManageController) GetCurrentSysAdm...阅读全文

刚来注册就发现一个bug

在注册用户名已经存在时,提交出现这样一个神奇的bug:填写一个已经存在的用户名,然后提交,用firebug看到:POST数据给:http://studygolang.com/account/register.json ,这个地址返回的是: {"errno": 1, "error":""} 返回的JSON格式里 error是空字符,应该提示:“用户名已存在!”, 希望尽快修正...阅读全文

Go如何处理zip中的中文文件名

Go的标准库已经自带了zip的库. 不过zip包在处理内部文件名时, 默认是utf8编码的. 对于Windows中文用户, 生成和读取zip内部文件名默认是GBK编码的. 因此, 在处理涉及GBK的文件名时需要做一个转换. Go语言官方的 go.text 子标准库已经支持各种编码, 下面是utf8转GBK的函数: import "golang.org/x/text/encoding/simplifiedchinese" func utf8ToGBK(text string) (string, error) { dst := make([]byte, len(text)*2) tr := simplifiedchinese.GB18030.NewEncoder() nDst, _, err :...阅读全文

博文 2015-05-18 12:38:08 chai2010

如何使用Python删除文件、目录

在进行Python项目实战(http://www.maiziedu.com/course/python/)时,会经常使用到Python删除文件、删除目录等操作方法,今天小编详细的分析了涉及Python文件操作的各种方法,需要的朋友可以参考下 下面来看一下python里面是如何删除一个文件及文件夹的~~ 首先引入OS模块 import os 删除文件: os.remove() 删除空目录: os.rmdir() 递归删除空目录: os.removedirs() 递归删除目录和文件(类似DOS命令DeleteTree): 方法1: # Delete everything reachable from the directory named in 'top', #...阅读全文

golang template模版如何判断变量是否存在/指针是否为空

golang template模版如何判断变量是否存在/指针是否为空 也就是语法{{if .Var}}的含义。 其含义是变量Var是否为真值,判断逻辑根据变量的类型,和golang语言本身判断变量是否为真的逻辑是一样的。 数字型:值不等于零 字符串:不是空串 指针类型:不为空 布尔类型:为True值 比较常用的是指针类型是否为空(对于其他基本类型来说,可以通过简单的比较运算来完成),语义上说就是属性是否存在,举个例子来说: package main import ( "os" "log" "text/template" ) type Address struct { City string Street string Apt int } func main() { templateText ...阅读全文

博文 2020-01-06 05:32:43 CodingCode

用go语言和org-mode搭建自己的博客环境

2012-12-23 用go语言和org-mode搭建自己的博客环境 设计目标 操作流程 目录格式 博文头部meta格式 功能实现 设计目标 半静态的博客。尽量是self-contain的,没有数据库依赖。只要完全基本功能。使用博文头部有元信息来分类别,tag等,go语言后台动态生成按类别浏览。 静态部分包括: css样式文件 各种显示的模板 大多数博文都是由org文件使用emacs生成的html 动态部分包括: 由go语言程序生成rss的feed 管理博文的分类,tag,等 评论等功能后期再考虑 操作流程 手写org格式的博文。文件格式有特殊头部存储博文json格式的meta信息。然后用emacs加工,将org文件转化为html导入到pub/post目录,只生成body部分。 go语言写后...阅读全文

博文 2015-03-16 11:50:39 zenlife

Golang 中的 面向对象: 方法, 类, 方法继承, 接口, 多态的简单描述与实现

前言: Golang 相似与C语言, 基础语法与C基本一致,除了广受争议的 左花括号 必须与代码同行的问题, 别的基本差不多; 学会了C, 基本上万变不离其宗, 现在的高级语言身上都能看到C的影子; Golang 中的 面向对象 什么是面向对象? 面向对象是一种编程思想, 并不是某一种开发语言独属; 那什么是对象? 对象,指的是客体。所谓客体是指客观存在的对象实体和主观抽象的概念。(扩展阅读) 简单理解就是, 抽象一个拥有多重属性的客体, 将共有属性抽离出来为一个类, 以便实现定义多个客体的功能。 面向对象有哪些特征? 面向对象 通常包括三个特征 继承, 封装 和 多态; (简单理解) 继承: 由子类继承父类的属性/数据/方法等; 封装: 以最简单的函数形式将方法展示出去, 而不需要使用者知...阅读全文

博文 2018-07-21 00:30:02 gettolive

leetcode 55. 跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。 这道题是刚刚做的,可以用贪心的思路。 我分享这道题的原因是因为它更适合反过来想。我们可以从数组的倒数第二个个元素看起,每次往前遍历,如果当前的元素能够到达最后一个位置,那么我们把当前位置开始到最后全部“切断”,以当前元素为最后一个元素,重复第一次...阅读全文

博文 2019-04-17 15:34:45 算法瘾士

Golang最最最基础语法

这一节看下Golang的基础语法...嘛...如果懒得看的话,记得以下两点就好: 1 Golang的变量、函数参数等等涉及到类型的声明,都是变量名写在前,类型写在后的(和正统C系语法刚好相反) 2 循环语句for通吃所有 然后,就开始啦~ Go语言基本语法 package main import ( "fmt" ) func main() { fmt.Println("Hello Azen٩(●˙▿˙●)۶…⋆ฺ") } 作用:使用fmt这个库运行输出 定义变量 var 关键字 func variableZeroValueDefine() { var a int var s string fmt.Printf("%d %q\n", a, s) } 知识点: 变量名写在前面,变量类型写在后面 ...阅读全文

博文 2018-07-11 20:34:42 Azen

golang项目结构

一、概述 golang更新了环境变量,导致整个goproject的结构改变: 1 [root@node175 goproject]# tree -L 2 2 . 3 ├── bin 4 │ └── demo 5 ├── pkg 6 │ └── linux_amd64 7 └── src 8 ├── demo 9 10 5 directories, 1 file 11 12 项目源码在src下,可以包含多个project: demo1, demo2 等等 13 此时bin, pkg均为空目录; 14 cd src && go install demo 15 #此时, 生成了demo项目的lib文件在如下目录中 16 [root@node175 src]# ll ../pkg/linux_amd...阅读全文

博文 2017-09-26 18:30:01 chris-cp

Win 7 下一种IE首页恶意篡改的解决(go2000.com/?XX)

笔者前些日子因没有注意,在安装软件时被其捆绑的流氓软件将IE主页恶意篡改了http://go2000.com/?52。在IE属性里设回about:blank(空白页)后,下次启动又被自动篡改。检查注册表发现HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main中的Start Page项被改成了http://go2000.com/?52,更改键值提示没有权限,更改Main的权限控制提示拒绝访问。Win7 优化大师强行锁定首页为about:blank,但注册表中的键值始终无法改变。 今天终于研究出一种方法可以修复此问题,特此分享: 1、以管理员身份运行注册表编辑器regedit。 2、检查HKEY_CURRENT_USER/Soft...阅读全文

博文 2016-02-08 23:00:01 qianyun6

go map的使用

欢迎关注go语言微信公众号 每日go语言 golang_everyday go中map用于存储健值对。map格式: map[KeyType]ValueType 声明一个map,键为字符型,值为int型: m := make(map[string]int) map中添加值: m["a"] = 1 获取map中值: fmt.Println(m["a"]) 输出结果:1 获取值同时判断是否存在该值 v,exists := m["a"] fmt.Printf("%d %t",v,exists) 输出: 1 true 遍历map for key, value := range m { fmt.Println("Key:", key, "Value:", value) } 输出: Key: a Valu...阅读全文

博文 2015-05-19 03:00:11 baiyuxiong

用go语言和org-mode搭建自己的博客环境

2012-12-23 用go语言和org-mode搭建自己的博客环境 设计目标 半静态的博客。 尽量是self-contain的,没有数据库依赖。只要完全基本功能。 使用博文头部有元信息来分类别,tag等,go语言后台动态生成按类别浏览。 静态部分包括: css样式文件 各种显示的模板 大多数博文都是由org文件使用emacs生成的html 动态部分包括: 由go语言程序生成rss的feed 管理博文的分类,tag,等 评论等功能后期再考虑 操作流程 手写org格式的博文。文件格式有特殊头部存储博文json格式的meta信息。 然后用emacs加工,将org文件转化为html导入到pub/post目录,只生成body部分。 go语言写后台,将pub/post目录的文件结合template/p...阅读全文

博文 2015-03-16 11:49:36 zenlife

go语言学习心得

目的 在新单位工作已经快1年,这边使用了go语言作为主要的开发语言。在这里记录在工作中使用该语言遇到的问题、心得,避免以后再踩坑。 各种例子 1、从一个map对象中根据key获取值。其中map的通用类型可以定义为:map[string]interface{} 前提条件存在一个上述类型的map定义 var m map[string]interface{} = make(map[string]interface{}) 可以有两种方式来获取对象 (1). 方法一 value, ok := m[key] (2). 方法二 value := m[key] 问题:value的类型为interface{},可以为值类型或指针类型,如果给定的key在map中不存在,对于不同value类型的结果会是怎样的? ...阅读全文

博文 2016-03-25 23:00:01 lingyun1981

【原创】树莓派3B开发Go语言(四)-自写库实现pwm输出

在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形。(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的。) 这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以简书和我联系。 github.com/dpawsbear/bear_rpi_go 一、树莓派的PWM 我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1。这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事。 手册上找寻东西稍等下讲述,这里先提供一种方法测试 树莓派3...阅读全文

博文 2017-08-31 14:05:03 爪爪熊大坏蛋

golang中使用proto3协议导致的空值字段不显示的问题处理方案

最近在使用grpc协议的时候,由于采用的是Proto3协议,在查找记录信息的时候,由于某些字段会有默认空值,导致在通过协议调用后,返回的json结构中并没有这些字段,虽然作为前端使用没有太大的问题,但是在更多的使用场景中,我们更需要知道该服务返回的确切字段,以便于能够做相应处理,尤其是编译型语言 具体的使用出现场景如下 type MemberResponse struct { Id int32 `json "id"` Phone string `json "phone"` Age int8 `json "age"` } //获取用户信息的接口 func (m *Member) GetMember(req *proto.MemberRequest, resp * proto.MemberRes...阅读全文

博文 2019-10-16 11:02:43 Dal_Zale

golang语法总结(四):基本数据类型

整型有:int8/uint8、int16/uint16、int32/uint32、int64/uint64、int/uint、byte、rune 1) 数字表示占多少位,uint的u表示unsigned,有点C语言基础的都知道是什么意思,这里就不赘述了; 2) int/uint会根据运行平台可能为32位或64位; 3) rune相当于int32的别名 4) byte相当于uint8的别名 浮点型有:float32、float64 float64相当于其它某些语言的double,即双精度浮点型 字符串:string 布尔型:bool 只有true或false,不能用数字代替(比如C语言就允许0代表false,非0代表true) 空值:nil 有些语言是null或NUL...阅读全文

博文 2016-02-25 10:00:01 QQ245671051

一个神秘现象引发对beego框架的思考

小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下: fmt.Println("--------SayHello begin------------") //项目中这里的a实际是作为参数传入,只是可能为空串,不为空串,这样写肯定没问题 a := "" b := strings.ToUpper(a[:1]) + a[1:] fmt.Println("b is ", b) fmt.Println("--------SayHello end------------") this.Ctx.Output.Body(this.Ctx.Input.RequestBody) 项目中这里...阅读全文

博文 2019-10-18 01:32:50 aside section ._1OhGeD

一个神秘现象引发对beego框架的思考

小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下: fmt.Println("--------SayHello begin------------") //项目中这里的a实际是作为参数传入,只是可能为空串,不为空串,这样写肯定没问题 a := "" b := strings.ToUpper(a[:1]) + a[1:] fmt.Println("b is ", b) fmt.Println("--------SayHello end------------") this.Ctx.Output.Body(this.Ctx.Input.RequestBody) 项目中这里...阅读全文

博文 2019-10-18 10:02:43 小碗汤

如何使用Go Modules(一)

Go 1.11和1.12包含了基础的modules,Go的最新的依赖管理系统,使得依赖版本的信息更加显而易见,管理更加方便。本文介绍了如何使用Go modules的基本操作。 一个module是多个Go packages的集合,在module的根目录下会生成一个文件go.mod。go.mod文件定义了这个module的依赖目录,每一个依赖的表现形式就是在go.mod 中记录的一行路径和特殊的版本描述。 从Go 1.11中,当当前目录或任何父目录具有go.mod时,只要该目录位于GOPATH/src目录内,为了兼容性,Go仍然会使用旧的GOPATH模式,即使目录中有go.mod文件。)从Go1.13开始,Go 的module模式作为默认的功能。 如何使用Go modules?本文从以下几节讲解...阅读全文

博文 2020-01-07 11:32:55 Lis_

入门:基础语法(一)变量的定义使用

#### 一、简单进入一个hello world ``` package main import "fmt" func main() { fmt.Println("hello world!") } ``` 1.package main是将本文件打包成main包,一个程序**有且只有一个main包**; 2.import是该文件下所需的“依赖的包”,这里我们所需以来的包是fmt,所需“依赖”的函数是Println()。golang中都是通过包.函数来进行函数调用的; 3.一个程**有且只有一个main()函数** #### 二、变量的定义 ######(一)使用var关键字进行定义 ``` func variableTypeDeduction() { var a, b = 3, 4 var c...阅读全文

博文 2018-09-23 23:42:25 ace_kylin

LeetCode-8-字符串转换整数 (atoi)

题目描述 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的...阅读全文

Golang 中状态和结果总结

操作 通道状态 结果 Read nil 阻塞 打开且非空 读取到值 打开且空 阻塞 已关闭(Closed) <初始空值> 只能写入 编译错误 Write nil 阻塞 打开且满 阻塞 打开且非满 写入成功 已关闭(Closed) panic 只能接收 编译错误 close nil panic 打开且非空 关闭 channel,读取成功,直到通道耗尽,然后读取到默认空值 打开但空 关闭 channel, 读取到默认空值 已关闭(Closed) panic 只能接收 编译错误 close nil panic 打开且非空 关闭 channel,读取成功,直到通道耗尽,然后读取到默认空...阅读全文

博文 2020-05-02 21:32:40 北冢

GO语言基础(一)2019-05-08

结束了第一章的学习,正式开始go语言的学习。我决定先去吃个午饭.下午两点十七分继续开始学习P31-P35:变量-变量需要声明(类C)注意事项:1、三种使用方式:(1)声明后不赋值则使用默认值。(int为0)(2)类型推导(类python)(3)省略var 用例如name:="tom"的方式,其中name不应该被声明过,:不能省略2、多变量声明与1相对应P36:数据类型简介 数据类型 P37-38:%T 变量类型 unsafe.Sizeof()变量的大小P39-P40:浮点型变量-golang的优势在于不依赖于操作系统,直接将数据的大小与内存大小相对应。P41-P42: 字符类型golang中字符用byte(int型的一种)来存储,可以理解为golang中没有字节类型,所以直接输出字符值,会现...阅读全文

博文 2019-05-09 03:34:56 竖琴犹奏相思苦

Golang动态规划

1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。 若这两个字符串没有公共子序列,则返回 0。 示例 1: 输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 "ace",它的长度为 3。 示例 2: 输入:text1 = "abc", text2 = "abc" 输出:3 解释:最长公共...阅读全文

博文 2020-05-03 12:32:42 DoneIsBetter

Golang:数组和切片(slice)类型

数组 数组是有着类型相同的元素且长度固定的集合 数组的声明必须要指定类型和长度,且长度是无法改变的。声明时不赋值,数组会自动初始化数组类型的空值。 // 声明并赋值 a1 := [5]int{1,2,3,4,5} // 声明空整数数组 a2 := [5]int{} 数组是值类型 通过格式化%p可以看出来如果不使用&符号是无法打印地址。 fmt.Printf("%p ---- %p \n",a1,&a1) 输出结果为: %!p([5]int=[1 2 3 4 5]) ---- 0xc00001a1e0 切片(slice) 切片是对数组一个连续片段的引用,所以切片是引用类型。切片在make初始化时长度和容量可以传入两个参数,第一参数长度(不为空),第二个参数是容量。 切片的长度声明效果和数组是一...阅读全文

博文 2020-01-11 06:32:40 快到碗里来_0004

httprouter解读(continuing)

httprouter解读 核心思想 与defaultServeMux的实现区别在于什么?采取特殊的数据结构作路由。 defaultServeMux的实现采用什么样的数据结构? httprouter的实现采用什么样的数据结构? router的架构图是怎样的,与server.go有何异同 一些http相关的细节 其他细节 细读源码 Router的 paramsPool?sync.Pool需要看看 done 修复重定向是代码大头,得细细解读重定向相关的协议内容 这部分先跳过吧,细节太多了 http包的server.go里面req的context里面包含了params怎么取消的。done “server.serve => conn.serve ==>defer cancleCtx/ w.cancel...阅读全文

博文 2019-11-16 23:32:43 weicao

空类的大小

空类就是没有任何数据成员的类,这种类占用的内存大小在不同的语言里面有不同的实现 c struct A {}; printf("sizeof(A): %lu\n", sizeof(struct A)); // sizeof(A): 0 这个结果输出是0,也就是说 c 语言中的空类大小为 0 struct A a1; struct A a2; printf("address(a1): %p\n", &a1); printf("address(a2): %p\n", &a2); printf("&a1 == &a2: %d\n", &a1 == &a2); // address(a1): 0x7ffdead15ff0 // address(a2): 0x7ffdead15ff0 // &a1 ==...阅读全文

空类的大小

空类就是没有任何数据成员的类,这种类占用的内存大小在不同的语言里面有不同的实现 ## c ``` c++ struct A {}; printf("sizeof(A): %lu\n", sizeof(struct A)); // sizeof(A): 0 ``` 这个结果输出是0,也就是说 c 语言中的空类大小为 0 ``` c++ struct A a1; struct A a2; printf("address(a1): %p\n", &a1); printf("address(a2): %p\n", &a2); printf("&a1 == &a2: %d\n", &a1 == &a2); // address(a1): 0x7ffdead15ff0 // address(a2): 0...阅读全文

博文 2019-11-27 20:56:02 hatlonely

Golang文件操作

目录相关 //目录创建 Package os func Mkdir(namestring, permFileMode)error { //仅创建一层目录 // Mkdir creates a new directory with the specified name and permission // bits (before umask). // If there is an error, it will be of type *PathError. func MkdirAll(pathstring, permFileMode)error { //创建多级目录 // Fast path: if we can tell whether path is a directory or file,...阅读全文

博文 2020-04-06 21:32:54 标准宅腐基全能选手