张嘉伟

个人博客

Excelize - 用于读写XLSX文件的Golang库

Golang读写xlsx

介绍 Excelize是一个使用纯Go编写的库,它提供一组函数,允许使用者写入和读取XLSX文件。支持读取和写入由Microsoft Excel生成的XLSX文件(2007版本及以后)。支持保存文件而不丢失XLSX的原始图表。此库需要Go版本大于等于1.10版本。 使用方法 安装excelize包 1go get github.com/360EntSecGroup-Skylar/exc......

麦迪35秒狂得13分,从此麦迪时刻诞生!

麦迪时刻

简介 2004年12月9日(北京时间2004年12月10日),在休斯顿丰田中心球场,惊现不可思议的大逆转,麦迪竟然在35秒内得到13分!全场1.6万名休斯顿球迷有幸见证了火箭主场逆转马刺,麦迪在比赛最后时刻,分别在35秒时一个三分,24.3秒时一个三加一(三分加一个罚球),11.2秒时一个三分,及最后1.7秒时一个三分绝杀,火箭神奇般的以81-80,1分优势战胜马刺。 麦迪时刻经典回顾: (......
NBA

何为文件包含漏洞?

文件包含漏洞介绍

文件包含,原本是将重复使用的函数写入单个文件中,供程序员自已或协同开发者调用,无需重复编写,增加程序的灵活性,提高开发效率。 前言 方便与安全永远是一把“双刃剑”,提供方便的同时,也为攻击者打开方便之门。攻击者利用文件包含漏洞,调用构造的恶意文件,达到攻击目的。 文件包含漏洞主要出现在脚本语言中,如jsp、asp、php等,但漏洞数量居多的是php web应用。 根据调用文件的位置,分为......

Go语言常见数据结构实现原理之map

map底层实现原理

map数据结构 Golang的map使用哈希表作为底层实现,一个哈希表里可以有多个哈希表节点,也即bucket,而每个bucket就保存了map中的一个或一组键值对。 map数据结构由runtime/map.go/hmap定义: 12345678type hmap struct { count int // 当前保存的元素个数 ... B ......

Go语言常见数据结构实现原理之slice

slice底层实现原理

前言 Slice又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。 正因为灵活,如果不了解其内部实现机制,有可能遭遇莫名的异常现象。Slice的实现原理很简单,本节试图根据真实的使用场景,在源码中总结实现原理。 热身环节 按照惯例,我们开始前先看几段代码用于检测对Slice的理解程度。 题目一 下面程序输出什么? 123456789101112131415pac......

Go语言常见数据结构实现原理之chan

chan底层实现原理

前言 channel是Golang在语言层面提供的goroutine间的通信方式,比Unix管道更易用也更轻便。channel主要用于进程内各goroutine间通信,如果需要跨进程通信,建议使用分布式系统的方法来解决。本文从源码角度分析channel的实现机制。 chan数据结构 src/runtime/chan.go:hchan定义了channel的数据结构: 1234567891011......