当传递给字符串而不是字符时,“find”实际上如何定位字符串中的字符?

How did `find` actually locate a character in a string, when it was passed a string, not a character?

我惊讶地发现 find "rspq" "q" 实际上在该系列中找到了 q。让我感到惊讶的原因是字符串 "rpsq" 是一系列字符,我希望必须将 "q" 指定为字符而不是字符串。

这给我带来了 2 个问题: 1.如何在红色中指定字符q? 1. 为什么我传入的是字符串而不是字符,却搜索成功?

  1. 参考official reference documentation
  2. Red 中的函数是高度多态的。 find 可以搜索给定元素或子系列的第一次出现。
  1. 字符是 char! 类型的值,指定如下:c: #"q".
  2. 我会说这是因为 Red 试图复制 Rebol 的行为。在 Rebol's documentation 你可以找到这个例子:
probe find "here and now" "and"
"and now"