首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用随机字节填充函数

用随机字节填充函数
EN

Code Review用户
提问于 2013-05-05 02:52:56
回答 1查看 360关注 0票数 2

我正在编写一个函数,在字节数组的开头添加5-10字节(计数是随机的),在末尾添加5-10个随机字节:

代码语言:javascript
复制
func padWithRandomBytes(b []byte) []byte {
    startBytes := make([]byte, 10-rand.Intn(5))
    endBytes := make([]byte, 10-rand.Intn(5))
    newSlice := make([]byte, len(startBytes)+len(b)+len(endBytes))
    copy(newSlice[:len(startBytes)], startBytes)
    copy(newSlice[len(startBytes):len(startBytes)+len(b)], b)
    copy(newSlice[len(startBytes)+len(b):], endBytes)
    return newSlice
}

这感觉很低效。有没有一种更直观的方法来写这篇文章呢?

EN

回答 1

Code Review用户

回答已采纳

发布于 2013-05-05 11:38:11

例如,

代码语言:javascript
复制
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func padWithRandomBytes(b []byte) []byte {
    s := 5 + rand.Intn(5+1)
    e := 5 + rand.Intn(5+1)
    r := make([]byte, s+len(b)+e)
    copy(r[s:], b)
    return r
}

func main() {
    rand.Seed(time.Now().UnixNano())
    b := []byte{1, 2, 3}
    fmt.Println(len(b), b)
    r := padWithRandomBytes(b)
    fmt.Println(len(r), r)
}

输出(随机):

代码语言:javascript
复制
3 [1 2 3]
20 [0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0]

3 [1 2 3]
15 [0 0 0 0 0 0 1 2 3 0 0 0 0 0 0]
票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/25825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档