当前位置: 首页 > news >正文

太原网站建设 thinkphp3.2wordpress去除发布者

太原网站建设 thinkphp3.2,wordpress去除发布者,发外链的网站排名,网站里的字体大小一、概述 进来在学go的端口检测部分#xff0c;但是自己写遇到很多问题#xff0c;又不知道从何入手#xff0c;故找来网上佬们写的现成工具#xff0c;学习一波怎么实现的。分析过程杂乱#xff0c;没啥思路#xff0c;勿喷。 项目来源#xff1a;https://github.com/…一、概述 进来在学go的端口检测部分但是自己写遇到很多问题又不知道从何入手故找来网上佬们写的现成工具学习一波怎么实现的。分析过程杂乱没啥思路勿喷。 项目来源https://github.com/XinRoom/go-portScan/blob/main/util/file.go 二、目录结构分析 总体来说这个工具主要三部分cmd(主程序、core核心框架部分、util工具部分后续的分析也从这三个部分开始讲解 三、util目录 此目录下主要有三个文件分别为file.go、log.go、shuffle.go以下逐一分析 1、file.go逐行读取文件内容 func GetLines(filename string) (out []string, err error) 主要内容为一个GetLines方法其接收一个文件名作为参数并返回文件中非空行的内容组成字符串切片和可能的错误主要作用是逐行读取文件并将非空行的内容添加到“out切片中。 func GetLines(filename string) (out []string, err error) {if filename {//先判断文件名是否为空为空则提示错误return out, errors.New(no filename)}file, err : os.Open(filename)//打开文件if err ! nil {return out, err}defer file.Close()//读取完记得关闭scanner : bufio.NewScanner(file)//读取文件的内容scanner.Split(bufio.ScanLines)//一行一行读取分隔for scanner.Scan() {//逐行读取并将文本内容追加到out切片中line : strings.TrimSpace(scanner.Text())if line ! {out append(out, line)}}return } 2、log.go日志记录 func NewLogger(filename string, std bool) *log.Logger 主要内容为一个 NewLogger方法它根据提供的参数创建一个新的日志记录器对象。该函数接受一个文件名和一个布尔值参数。 filename 参数用于指定日志输出的文件名如果为空字符串则表示日志将输出到标准输出stdout。std 参数是一个布尔值如果设置为 true则日志会同时输出到文件和标准输出如果设置为 false则只输出到文件。 这个函数的目的是根据参数创建一个日志记录器可以指定输出到文件还是标准输出并可以选择是否同时输出到文件和标准输出。 func NewLogger(filename string, std bool) *log.Logger {var out io.Writerif filename {out os.Stdout //如果传入的filename为空将out设置为标准输出} else {//如果不为空则打开这个文件outFile, _ : os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)if std {//如果 std为true则将输出同时定向到标准输出和文件中通过 io.MultiWriter 将os.Stdout 和打开的文件合并成一个多写入器out io.MultiWriter(os.Stdout, outFile)} else {//如果 std 参数为 false则直接将输出定向到打开的文件中out outFile}}logger : log.New(out, , 0)//使用 log.New 方法创建一个新的日志记录器对象 logger将输出对象 out 作为日志记录器的输出设置空的前缀并且不添加任何额外的选项flagreturn logger } 3、shuffle.go 主要包含3个方法NewShuffle、Get、IsUint16InList以及一个结构体Shuffle type Shuffle struct type Shuffle struct {rl []uint16 // 乱序序列存储的是一般轮次的乱序序列rl2 []uint16 // 最后一轮乱序序列(无法整除时使用)n uint16 // 乱序精度用来限制乱序序列的长度size uint64 //乱序序列的大小 } func NewShuffle(size uint64) *Shuffle 函数接收一个 size 参数作为生成乱序序列的大小。 // NewShuffle 局部乱序 func NewShuffle(size uint64) *Shuffle {if size 0 { //如果size为0 返回nilreturn nil}sf : Shuffle{size: size}// 创建一个新的 Shuffle 结构体设置其 size 字段为传入的值if size 100 {sf.n 100 //如果size100设置乱序精度为100} else {sf.n uint16(size)//否则设置乱序精度为size 的 uint16 类型。}//通过循环填充 rl 切片创建一般轮次的乱序序列。//使用 rand 包生成随机数种子对 rl 进行乱序化操作。//如果 size 无法整除 n则设置 rl2 切片并生成最后一轮乱序序列// 通用轮次sf.rl make([]uint16, sf.n)for i : uint16(0); i sf.n; i {sf.rl[i] i}// 洗牌方法r : rand.New(rand.NewSource(int64(size)))r.Shuffle(int(sf.n), func(i, j int) {sf.rl[i], sf.rl[j] sf.rl[j], sf.rl[i]})// 最后一轮无法整除时新建对应长度的rl2t : uint16(size % uint64(sf.n))if t ! 0 {sf.rl2 make([]uint16, t)for i : uint16(0); i t; i {sf.rl2[i] i}r.Shuffle(int(t), func(i, j int) {sf.rl2[i], sf.rl2[j] sf.rl2[j], sf.rl2[i]})}return sf } func (sf *Shuffle) Get(index uint64) uint6 Get 方法接收一个索引 index用于获取转换后的索引值。首先计算 t 为 index 对 sf.n 取模得到的结果。然后根据索引 index 与 n 的关系决定使用哪个乱序序列。如果无法整除则使用 rl2否则使用 rl // Get 根据索引获取转换后的索引值 func (sf *Shuffle) Get(index uint64) uint64 {t : index % uint64(sf.n)// 最后一轮无法整除时用rl2if index-tuint64(sf.n) sf.size {return index - t uint64(sf.rl2[uint16(t)])}return index - t uint64(sf.rl[uint16(t)]) } func IsUint16InList(code uint16, list []uint16) bool IsUint16InList 函数接收一个 code 和一个 list用于判断 list 中是否存在 code。 它遍历 list 切片如果发现存在与 code 相等的元素则返回 true如果遍历完 list 后都没有找到则返回 false。 func IsUint16InList(code uint16, list []uint16) bool {for _, e : range list {if e code {return true}}return false }
http://www.pierceye.com/news/970742/

相关文章:

  • 新浪博客怎么上传wordpress佛山推广seo排名
  • 北京建设网站有哪些公司网络营销方法有哪几种
  • 在中国备案的网站服务器利用小说网站做本站优化
  • 网站风格的表现形式重庆观音桥房价
  • 哪些公司的网站做的很好手机网页素材
  • 天津地铁建设网站百度广告太多
  • 保定php网站制作wordpress的seo收件箱
  • 网站建设公司-跨界鱼科技优外国网站设计风格
  • 网站营销平台注册微信公众号流程
  • 西安专业网站建设服务公司商标查询网入口
  • 营销型网站设计房地产wordpress多媒体路径
  • 门户网站建设解决方案wordpress图片广告
  • 哈尔滨h5模板建站设计一个软件需要多少钱
  • 青岛网站建设方案服务惠民卡看电影怎么用
  • 兰州新站点seo加盟网站建设工作有底薪吗
  • 哈尔滨建设网站官网清远头条新闻
  • 泉州网站设计平台wordpress cenos
  • 网站内容批量替换站长之家网站素材
  • asp.net 获取网站域名展览馆展示设计
  • 网站网页设计公司家庭做网站
  • php网站开发实战的书网站开发排行榜
  • 摄影师都在哪些网站发布作品云虚拟主机搭建网站
  • 中小企业电子商务网站建设传奇手游代理平台
  • 网站建设需要每年交钱吗如何选择宣传片制作
  • 建设网站为网站网站做广告芜湖市网站建设
  • 网站建设和维护怎么学android开发编辑wordpress
  • 有哪些学做衣服的网站生产管理软件app
  • 网站换域名 蜘蛛不来广告宣传片制作公司
  • 百度做个网站要多少钱如何在淘宝网做自己的网站
  • 网站建设属于营业范围里的哪一项深圳外贸建站网络推广联客易