在 Rebol 2 中,有一个 user.r 和 rebol.r 文件,用于添加将在启动期间加载的代码。 这对 Rebol R3 有何改变?
最佳答案
在 Rebol 3 中,您使用 rebol.r
加载代码,它应该与 rebol
可执行文件位于同一目录中。它不会从用户的主目录加载 rebol.r
,因为该目录中的文件往往可以被以用户权限运行的程序写入,这使其成为放置恶意软件的好地方。您放置 rebol
可执行文件的位置被认为更容易防止用户代码写入它。
文件 user.r
保留用于放置用户特定的设置和首选项,以非程序方言(我们尚未讨论)表示。即使它回来了,它也不是加载代码的方法,原因与 rebol.r
没有从用户的主目录加载相同。它只会用于偏好。
如果您想加载特定于用户的代码,您可能希望使用 rebol.r
中的代码明确地这样做,但要注意安全问题。 Rebol 3 中很少需要特定于用户的代码。
您还可以考虑利用 Rebol 3 的模块系统。大多数库和实用程序代码最好在模块中定义,您可以通过设置 system/options/module-paths
来决定将这些模块放在哪里。然后您的脚本按名称导入实际模块,而不必知道它们的实际位置。您还可以设置 system/options/default-suffix
,这是模块的默认文件扩展名,以防 %.reb
不符合您的喜好。
您很少会想要加载代码以供全局使用,因为对代码的需求对于脚本来说是局部的。一种这样的用途是在锁定安全性之前加载 rebol.r
中的扩展,这样就无法加载更多的扩展;这使您可以将扩展名限制在批准的列表中。任何全局代码都可以延迟加载,因此它不会因不需要它的脚本而使系统困惑。延迟加载的代码在脚本请求之前不会真正导入。
关于rebol - Rebol R3 有哪些配置文件?它们是如何加载的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16783021/