- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 helloworld 开始,我试图通过制作一个应用程序来学习一些小马,该应用程序会向用户回显他们输入的内容。这是有效的,除了我 _env.out.print(_buffer)
的一行。
class MyInput iso is StdinNotify
var _env: Env
var _buffer: Array[U8]
new iso create(env: Env) =>
_env = env
_buffer = Array[U8].create()
fun ref apply(data: Array[U8] iso) =>
for item in (consume data).values() do
if item == 0x0A then
_env.out.print(_buffer)
_buffer = Array[U8].create()
end
_buffer.push(item)
end
我得到的编译错误是:
argument not a subtype of parameter
_env.out.print(_buffer)
^
parameter type: ByteSeq val
be print(data: ByteSeq) =>
^
argument type: Array[U8 val] ref
_env.out.print(_buffer)
来自阅读 github 中的源代码我认为 Array[U8] 应该符合 ByteSeq 的条件,所以我猜这是功能问题。我尝试了一些方法,但似乎无法将 ref 数组复制到 val 数组中。我得到的最接近的是 let out: Array[U8] box = _buffer
最佳答案
感谢小马邮件列表和更多的尝试和错误,我已经让它工作了。 (感谢肖恩·艾伦)
actor Main
new create(env: Env) =>
env.out.print("welcome to the echo chamber")
var input = recover iso MyInput.create(env) end
env.input(consume input)
class MyInput is StdinNotify
var _env: Env
var _buffer: Array[U8] iso
new create(env: Env) =>
_env = env
_buffer = recover iso Array[U8].create() end
fun ref apply(data: Array[U8] iso) =>
for item in (consume data).values() do
if item == 0x0A then
let bufferOutIso = _buffer = recover iso Array[U8].create() end
_env.out.print(consume bufferOutIso)
else
_buffer.push(item)
end
end
因此,如果其中任何一个需要解释,
val
参数,但它需要一个 iso
,原因我不完全理解iso
时,您需要了解recover
block 和destructive read 恢复 iso
block 中创建实例关于ponylang - 我不知道如何转换类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589327/
为什么赋值返回以前的值而不是新值,例如:将 0 赋值给 y 而不是 2?这是非常危险的,因为它违反了最小意外原则。 var x: I32 = 0 let y = (x = 2) 最佳答案 我很确定这样
从 helloworld 开始,我试图通过制作一个应用程序来学习一些小马,该应用程序会向用户回显他们输入的内容。这是有效的,除了我 _env.out.print(_buffer) 的一行。 class
今天刚找到编程语言“小马”……并开始玩它。 我的代码应该做一些简单的生产者消费者的事情。 正如语言文档所声称的那样,该语言确保没有数据竞争。 这里,main 向生产者发送 10 条消息,生产者又向消费
我正在尝试学习 Pony,出于显而易见的原因,我想做的第一件事就是打印值。 但是,它似乎不适用于大多数事情,例如: env.out.print(2 + 2) 给出错误: Could not infer
Pony 有一个未参数化的异常值。 不幸的是,我经常有一些代码想要抛出不同类型的异常,并且我需要知道它们是什么,以便正确处理它们——例如,简单地说,当停止程序时,向用户提供以下信息很重要正确的错误消息
actor Test fun foo(a: U32) => a = a + 1 我想要test.foo(a)修改a。这可能吗?谢谢 最佳答案 您只能在类级别修改var。这是故
我一直在尝试从 Pony Language 的 FFI 调用 Window 的 CreateProcessA。 我创建了一个 C 和一个 PonyLang 示例。 C 示例非常有效: #include
我一直在研究 Pony 数组,以便更好地理解 Pony,并且想为任何数组编写映射函数。 我说的是现在大多数语言都具有的用于转换集合元素的标准映射函数,如 Clojure 中所示: (map #(+ 1
我是一名优秀的程序员,十分优秀!