如何正确使用纯红色代码中的红色/系统方言?

时间:2015-02-04 10:57:17

标签: red

我正在编写一个简单的教程应用程序,使用curses绑定到Red / System。这样做就像在" curses-example.reds"中所示。效果很好。但是如何从纯红色代码中使用此绑定?我是否把整个方法弄错了,我真的必须留在红/系统方言的边界内?

代码尽可能简单:

Red/System [
    File:    "%test.reds"
]

#include %curses/curses.reds

with curses [
    initscr
    getch
    endwin
]

如何在Red / System和Red之间正确进行双向日期交换? 从this问题的答案来看,我的表现并不是很好。

2 个答案:

答案 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网站上的博客中的示例。 你需要寻找常规。

我想特别感谢那个投了我答案的人。