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类型接收才能还原。
    
  • 相关阅读:
    Vista修改网卡MAC地址防御ARP
    MySQL
    FirstWebSite
    Java
    python
    编码风格 标识符命名
    计算机体系结构基础
    编码风格 indent工具
    Linux发布web app 到Tomcat
    编码风格 函数
  • 原文地址:https://www.cnblogs.com/flhs/p/13635107.html
Copyright © 2011-2022 走看看