如何将字符串传递给函数,以便稍后创建二进制文件?
这是我的函数,当我调用 my_conv("2312144", 10, 10) 时,它给了我“错误的参数”错误
my_conv(S, Start, End) ->
Res = <<Start:8, End:8, S:1024>>.
This is my function, when I call my_conv("2312144", 10, 10), it gives me "bad argument" error
my_conv(S, Start, End) ->
Res = <<Start:8, End:8, S:1024>>.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果不进行转换,则不能在二进制表达式中使用字符串。您需要使用
list_to_binary(S)
将字符串转换为二进制文件。我建议使用以下表达式:(
请注意,
list_to_binary/1
实际上接受深度 IO 列表,而不仅仅是纯字符串)。如果您打算将二进制文件填充到 1024 字节(或 1040 字节,包括换行符),您可以稍后这样做:
A string cannot be used inside a binary expression without conversion. You need to convert the string to a binary by using
list_to_binary(S)
.I would recommend the following expression:
(Note here that
list_to_binary/1
actually accepts a deep IO list and not just a pure string).If you intend to pad your binary to 1024 bytes (or 1040 including your newlines) you can do so afterwards: