我正在编写一个简单的教程应用程序,使用curses绑定到Red / System。这样做就像在" curses-example.reds"中所示。效果很好。但是如何从纯红色代码中使用此绑定?我是否把整个方法弄错了,我真的必须留在红/系统方言的边界内?
代码尽可能简单:
Red/System [
File: "%test.reds"
]
#include %curses/curses.reds
with curses [
initscr
getch
endwin
]
如何在Red / System和Red之间正确进行双向日期交换? 从this问题的答案来看,我的表现并不是很好。
答案 0 :(得分:3)
目前,要使用Red程序中的Red / System Code,您需要使用例程! - http://www.red-lang.org/search/label/routine
目前,只有整数!和逻辑!值可以在红色和红色/系统之间透明传递。必须在例程中转换其他数据类型才能使用。
例如,如果你有一个字符串!数据类型作为例程的参数,Red会将数据作为红色字符串传递给例程!结构:
red-string!: alias struct! [
header [integer!] ;-- cell header
head [integer!] ;-- string's head index (zero-based)
node [node!] ;-- series node pointer
cache [c-string!] ;-- (experimental)
]
需要将其转换为Red / System c-string!在你可以在日常工作中使用它之前。同时,您必须满足Red string!s和Red / System c-string!s之间的编码差异。红绳子!可以是ISO-8559-1,UCS-2或UTF-32编码。
如果您想要返回一个字符串,您必须迎合相反的情况!来自日常工作的红色程序。
其他数据类型需要以类似的方式处理。
我确信红色和红色/系统之间的传递值将会变得更加容易,将来会更容易。但是,在Red达到版本1.0之前,我个人并不期望这样做。
答案 1 :(得分:1)
首先使您的代码红色代码不是红色/系统。接下来尝试尽可能接近red-lang.org网站上的博客中的示例。 你需要寻找常规。
我想特别感谢那个投了我答案的人。