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

邢台网站建设报价多少钱天河商城网站建设

邢台网站建设报价多少钱,天河商城网站建设,为什么做民宿网站,沈阳网官网一、概述 进来在学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://wiki.neutronadmin.com/news/351609/

相关文章:

  • 建设网站建设什么征琴谷歌网站怎么打不开
  • 定远县建设局网站目前哪个城市又封了
  • 图片展示网站织梦源码怎么查wordpress主题
  • 掀浪云网站建设广告设计和平面设计有什么区别
  • 世纪明珠网站建设做怎样的企业网站
  • 网站制作公司代理企业营销策划包括哪些内容
  • 没备案的网站可以做淘客html5 手机 网站
  • 国外虚拟主机 两个网站绿色大气网站模板
  • c asp做网站动画设计公司
  • 免费成品网站模板滁州网站建设设计
  • 贵州省文化旅游网站建设的必要性网站开发流程及进度安排
  • php怎么做直播网站吗乐器产品主要在什么网站做推广
  • 北京专业网站制作服务做网站 视频
  • 湛江专业建站wordpress文章展示
  • 兖州城乡建设局网站免费微信营销系统
  • 网站建设项目报告总结单屏网站设计
  • 给个网站免费的做网站订阅号
  • 文化传媒公司网站模板海淀网站建设联系方式
  • 怎么介绍做网站技术深圳华强北手机城
  • 挂机宝可以做网站吗源代码管理网站
  • 江苏城乡建设教育网站正常做一个网站多少钱
  • wordpress源码网站主题模板在线设计制作
  • 帮人做ppt的网站wordpress数据库设置
  • 个人网站开发多少钱门户网站管理系统
  • 当今做哪个网站能致富小红书推广文案
  • 商城网站 报价 方案湖南微网站开发
  • 石家庄做网站公司汉狮价格房产信息查询
  • 重庆企业网站备案要多久时间北京的公司有哪些
  • 做网站建设找哪家好网站策划论坛
  • aje网站润色织梦 手机网站