跳转到内容

Rebol 编程/控制台

来自维基教科书,开放的书籍,为开放的世界

控制台

[编辑 | 编辑源代码]

交互式控制台是您可以执行大部分编程操作的地方,用于测试代码的小片段并尝试各种函数。它是学习 Rebol 函数的最佳方式。

如果您有 Rebol/View,您可以从控制台访问各种实用程序,例如桌面、文本编辑器和用于输入的基本实用程序,这些实用程序可以在您的程序中使用。

如何访问控制台

[编辑 | 编辑源代码]

当您使用 Rebol.exe 启动 Rebol/Core 时,可以直接访问控制台,但这不允许您使用 桌面编辑器 命令。

如果您启动 Rebol/View,它将从 Viewtop 开始。控制台可以在窗口左侧的底部图标中访问。要进入控制台,请点击该图标。您可以在控制台提示符下输入 桌面 命令返回 Viewtop。

使用控制台

[编辑 | 编辑源代码]

在开始 Rebol 编程之前,了解有关控制台的一些重要基础知识会很有帮助。您将花费大量时间在控制台中!

只需键入命令,您就可以开始使用控制台。如果您键入

>> now

Rebol 将返回当前日期和时间

== 2-Sep-2005/2:12:42+2:00

另一个例子

>> print "Hello world!"
Hello world!

数学运算也是可以的

>> 2 + 2
== 4

请注意 >> 和 == 符号

>>
这是您输入函数和命令的提示符。
==
这是之前执行的程序或操作的 返回值 符号。

我们之前使用的 打印 函数只是在控制台中产生了输出。打印 函数的返回值是一个特殊值,解释器在显示结果时会忽略它。

让我们尝试一些会导致错误的操作

>> 2 / 0
** Math Error: Attempt to divide by zero
** Near: 2 / 0

Rebol 友好地使用 ** 符号生成错误信息文本。

历史命令

[编辑 | 编辑源代码]

如果您想再次重试这些示例,请使用键盘上的向上箭头键访问 Rebol 的已执行函数历史记录。

要移动控制台滚动条,您可以使用鼠标或 Page-UpPage-Down

要显示之前输入的行,您可以使用 向上向下 箭头,就像在 Linux 控制台中一样。

要修改它们,请使用 HomeEnd 键以及 DeleteBackspaceLeftRight 箭头。

TAB 自动完成

[编辑 | 编辑源代码]

TAB 键可用于自动完成:Rebol 将尝试完成您正在键入的内容。例如,如果您只按 a 然后按 TAB,您将获得以 a 开头的所有单词的建议。

>> action! any-type! any-word! any-function! any-string! any-block! action? any-type? any-word?
any-function? any-string? any-block? and add and~ absolute at alias all any as-string as-binary
access-os arccosine arcsine arctangent abs as-pair about apply also append ajoin array alter 
attempt ask ascii? any-path!  any-path? any-object! any-object? assert alert aqua alive?
a 

因此,如果您键入 ale,它将完成为 alert,这是唯一以 ale 开头的单词。

>> alert

如果您声明一个变量,例如 aaa,Rebol 将记住它并也使用它进行自动完成。

控制台帮助函数

[编辑 | 编辑源代码]

可以使用 帮助 命令或其快捷方式问号 ? 访问控制台帮助。它可以

1- 在 Rebol 词典中查找一个词并描述其内容。示例

>> ? day
No information on day (word has no value)
>> ? pi
PI is a decimal of value: 3.14159265358979
>> my-word: "beginning"
== "beginning"
>> ? my-word
MY-WORD is a string of value: "beginning"

2- 描述函数的语法

>> ? now
USAGE:
   NOW /year /month /day /time /zone /date /weekday /yearday /precise

DESCRIPTION:
    Returns the current local date and time.
    NOW is a native value.

REFINEMENTS:
    /year -- Returns the year only.
    /month -- Returns the month only.
    /day -- Returns the day of the month only.
    /time -- Returns the time only.
    /zone -- Returns the time zone offset from GMT only.
    /date -- Returns date only.
    /weekday -- Returns day of the week as integer (Monday is day 1).
    /yearday -- Returns day of the year (Julian)
    /precise -- Use nanosecond precision

3- 如果您在字符串中键入元素的一部分,Rebol 将返回包含该字符串的任何元素

>> ?? part-of-searched-word
Print result here
>> ? wor
Found these words:
  any-word!       datatype! any-word!
  any-word?       action!   Returns TRUE for any-word values.
  get-word!       datatype! get-word!
  get-word?       action!   Returns TRUE for get-word values.
  lit-word!       datatype! lit-word!
  lit-word?       action!   Returns TRUE for lit-word values.
  my-word         string!   "beginning"
  set-word!       datatype! set-word!
  set-word?       action!   Returns TRUE for set-word values.
  to-get-word     function! [value]
  to-lit-word     function! [value]
  to-set-word     function! [value]
  to-word         function! [value]
  word!           datatype! word!
  word?           action!   Returns TRUE for word values.

您也可以使用引号来搜索字符串。请注意这两个示例之间的区别

>> ? "find"
Found these words:
  find            action!   Finds a value in a series and returns the series a...
  find-key-face   function! Search faces to determine if keycode applies.
  find-window     function! Find a face's window face.
>> ? find
USAGE:
   FIND series value /part range /only /case /any /with wild /skip size /match /tail /last /reverse
DESCRIPTION:
    Finds a value in a series and returns the series at the start of it.
    FIND is an action value.
ARGUMENTS:
    series -- (Type: series port bitset)
    value -- (Type: any-type)
REFINEMENTS:
    /part -- Limits the search to a given length or position.
        range -- (Type: number series port)
    /only -- Treats a series value as a single value.
    /case -- Characters are case-sensitive.
    /any -- Enables the * and ? wildcards.
    /with -- Allows custom wildcards.
        wild -- Specifies alternates for * and ? (Type: string)
    /skip -- Treat the series as records of fixed size
        size -- (Type: integer)
    /match -- Performs comparison and returns the tail of the match.
    /tail -- Returns the end of the string.
    /last -- Backwards from end of string.
    /reverse -- Backwards from the current position.

有关当前工作会话的其他有用信息,可以使用以下 Rebol 词

probe       : Displays the contents of a Rebol word in its original format.
source      : Displays the contents of a Rebol function.
what        : Lists all Rebol words currently defined.
what-dir    : Displays name of the current directory.
list-dir    : Lists all filenames in current directory.
change-dir  : Change current directory.

停止程序

[编辑 | 编辑源代码]

您可以停止一个程序,如果它是在控制台中运行的,或者如果它输出到程序中打开的控制台,请按 Escape 键。这将使您返回到提示符。

华夏公益教科书