Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ocaml 将字符串拆分为块_Ocaml - Fatal编程技术网

Ocaml 将字符串拆分为块

Ocaml 将字符串拆分为块,ocaml,Ocaml,由于我在core或电池中看不到这方面的任何东西,所以我正在寻找一种有效的方法,将字节(或字符串,或任何方便的东西)分成约65k的块(我使用一个短的作为长度头,用于通过tcp发送)。 我自己也试过写这个函数,但是我遇到了麻烦,所以任何帮助都会很感激,或者指向现有函数的指针也可以。 谢谢 这里有一个函数,可以将字节值拆分为大小为65534的字节列表(当然最后一个除外) (值得考虑的是,在代码中传递整个字节值,同时计算到目前为止已写入的字节数。这将避免生成较小的块所需的复制。)这里有一个函数,可以将字

由于我在core或电池中看不到这方面的任何东西,所以我正在寻找一种有效的方法,将字节(或字符串,或任何方便的东西)分成约65k的块(我使用一个短的作为长度头,用于通过tcp发送)。 我自己也试过写这个函数,但是我遇到了麻烦,所以任何帮助都会很感激,或者指向现有函数的指针也可以。
谢谢

这里有一个函数,可以将字节值拆分为大小为65534的字节列表(当然最后一个除外)


(值得考虑的是,在代码中传递整个字节值,同时计算到目前为止已写入的字节数。这将避免生成较小的块所需的复制。)

这里有一个函数,可以将字节值拆分为大小为65534的字节列表(当然最后一个除外)


(值得考虑的是,在代码中传递整个字节值,同时计算到目前为止已写入的字节数。这样可以避免复制较小的块。)

我没有考虑过,我可以只使用偏移量,让发送返回消耗的字节数,只要总数不等于长度,就可以递归。谢谢,那确实好多了!谢谢你的功能,看看它是如何工作的仍然很有趣!我没有考虑过,我可以有一个偏移量,让send返回消耗的字节数,只要总数不等于长度,就可以递归。谢谢,那确实好多了!谢谢你的功能,看看它是如何工作的仍然很有趣!
let split_bytes b =
    let rec isplit sofar ib =
        let iblen = Bytes.length ib in
        if iblen > 65534 then
            let chunk = Bytes.sub ib 0 65534 in
            let rest = Bytes.sub ib 65534 (iblen - 65534) in
            isplit (chunk :: sofar) rest
        else
            ib :: sofar
    in
    List.rev (isplit [] b)