string - Rebol cd 不需要%?

标签 string directory rebol rebol3 rebol2

我在 Win-7 64 位上使用 Rebol/Core 278-3.1,从标准 Windows 命令 shell 启动。我想知道如何向我的年轻 friend (一位网页设计师)解释解释器的 CD 命令不需要 % .

这让我想起了 DOS 在 cd 后面不需要空格。 REPL 不是 shell,那么为什么要将此快捷方式设置为 shell 呢?为什么在没有设置单词的情况下,目录的字符串名称会被视为单词?乍一看,这是否会让代码变得不必要的含糊不清?

(想象一下这是您第一次编程语言体验......而不是作为 unix shell 中 ls cd mv 的老用户。)

即使设置了一个单词,该单词也会被 cd 忽略,除非使用 get-word ...示例如下:

dir %tests

dir tests:

“完整”,其中cd测试的作用就好像没有带有get-word :tests的单词


注意: Saphirion R3 具有以下行为:如果我将一个单词设置为目录名称但为大写,则 get-word 将我移动到该目录并以不正确的大写形式显示它-案件。但没有具有该名称的目录。我相信cd应该给出了错误。当然是关于unicode和与类似linux世界的合规性的问题..或者这仅适用于Windows?我用 ubuntu 和 Syllable 进入我的 Virtual Box ...

最佳答案

您可以通过编写来查看cd函数的源代码

source cd

在那里您可以发现,为了方便起见,其他数据类型都转换为文件。

"Why is a string name of a dir treated as a word when no such word has been set?"

Rebol 通过允许符号编程的语法来识别单词。一个单词是否被设置为一个单词并不重要。

"[If] I set a word to a dir name but in upper-case, the get-word moves me to that dir and shows it in that incorrect upper-case"

某些操作系统(例如 Windows)尝试不区分大小写,认为这对人类来说更方便。

出于同样的原因,Rebol 字符串处理默认情况下也不区分大小写。

"Did anyone ever suggest that chdir could have all convenience and quirks and that cd expect a file correctly named ?"

这本质上就是发生的事情,但方式不同。有一个 change-dir 函数坚持使用正确的(文件!)数据类型,而 cd 函数是一个“便捷的快捷方式”。

关于string - Rebol cd 不需要%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18061235/

相关文章:

windows - Windows 资源管理器中文件夹 "Date Modified"的规则

character-encoding - 使用 Rebol 3 执行文件编码转换

python - 如何获取字符串中的名字?

string - 如何在clojure中定义多个正则表达式来分割字符串?

java - 如何在 Java 中的 JSON 字符串中在不知道确切键的情况下屏蔽特定值

c++ - 如何用 C++ 解析复杂的字符串?

java - 使用 Java 在 Windows 中创建新文件夹时出现问题

ruby - 为什么我得到 Dir :Class in irb using Ruby 2. 6.3 的未定义方法 `mktmpdir'?

rebol - Red/Rebol 函数如何通过值或引用传递参数?

rebol - 检查 REBOL 字符串是否包含另一个字符串