zoukankan      html  css  js  c++  java
  • golang的一些零散笔记

    clone struct

    待深入研究

    func (log *Logger) clone() *Logger {
    	copy := *log
    	return &copy
    }
    

    函数选项模式

    接受结构体的某个参数,返回一个选项方法

    
    const (
    	defaultPieceLength uint64 = 524288
    	defaultTracker = "http://demo.abc.com/"
    )
    
    type Meta struct {
    	Tracker     string    `json:"tracker"`
    	Name        string    `json:"name"`
    	Length      uint64    `json:"length"`
    	PieceLength uint64    `json:"pieceLength"`
    }
    
    type Option func(m *Meta)
    
    func New(file string, options ...Option) *Meta {
    	meta := &Meta{
    		Tracker:     defaultTracker,
    		PieceLength: defaultPieceLength,
    	}
    	for _, option := range options {
    		option(meta)
    	}
    	return meta
    }
    
    func WithName(name string) Option {
    	return func(m *Meta) {
    		m.Name = name
    	}
    }
    
    func WithPieceLength(pieceLength uint64) Option {
    	return func(m *Meta) {
    		m.PieceLength = pieceLength
    	}
    }
    
    func WithTracker(tracker string) Option {
    	return func(m *Meta) {
    		m.Tracker = tracker
    	}
    }
    
    ### json.Marshal []byte
    golang json Marshal默认对[]byte类型进行base64编码处理,Unmarshal时也只能用[]byte类型接收才能还原。
    
  • 相关阅读:
    stream流的统计demo
    ResourceBundle 读取文件demo
    spring boot 配置Filter过滤器的两种方式
    java工厂模式demo
    ThreadLocalDemo
    观察者模式Demo
    大数字的计算
    rabbitMQ消息丢失
    CF671E(线段树+单调栈)
    2020集训队作业板刷记录(三)
  • 原文地址:https://www.cnblogs.com/flhs/p/13635107.html
Copyright © 2011-2022 走看看