如何将 IN 与块而不是对象一起使用?

2023-12-13

Rebol 中的 IN 函数查找字段是否在对象中:

USAGE:
    IN object word

DESCRIPTION:
    Returns the word or block in the object's context.
    IN is a native value.

ARGUMENTS:
    object (any-object! block!)
    word -- (modified if series) (any-word! block! paren!)

据称它适用于物体或块。如果我用一个对象尝试它,它就可以工作:

>> in object [foo: 10 bar: 20] 'foo
== foo

但如果我只是尝试使用原始块,它不会返回 NONE:

>> in [foo: 10 bar: 20] 'foo
== none

我猜如果它不支持块我会理解(Rebol2 不支持)。但在什么情况下它wouldn't返回 NONE 允许的块吗?

冒着将这两个问题合二为一的风险,接受 BLOCK 是怎么回事!为了word范围?我认为如果您有一组要查找的单词,那么需要一个块,但它似乎只是返回该块:

>> in object [foo: 10 bar: 20] [mumble frotz bar]
== [mumble frotz bar]

>> in object [foo: 10 bar: 20] [mumble frotz]
== [mumble frotz]

冒着提出这三个问题的进一步风险,采取 PAREN 意味着什么!对于单词有?


IN 函数主要不是用于在对象中搜索单词,而是返回一个单词或单词块in对象,或者用 Rebol 术语来说bound to物体。它是 BIND 函数的一个变体,在与 BIND 不同的情况下很有用。

如果对象中不存在该名称的单词,则它不会返回任何内容,这是明智的。这给它带来了能够在条件表达式中用作单词检测功能的附带好处,但这不是它的主要用途。

IN 可以采用一个对象块作为其对象参数,然后尝试依次将单词绑定到每个对象,返回绑定到块中具有该单词的第一个对象的单词。这是一种相对快速的方法来对 Rebol 3 GUI 的旧设计进行覆盖单词查找,但事实证明在这种情况下它不是最好的方法,因此 GUI 现在不使用该设计。然而,在块词被保留为一个潜在有用的功能,以供将来在其他地方使用。

在您的示例中,该块中没有对象,因此 IN 无法将单词绑定到任何对象。这就是为什么 IN 没有返回任何内容。

如果您为单词参数传入一个块,它会在返回该对象之前将该块绑定到该对象。这是为了允许像这样的代码do in obj [print a]。它不做一个bind/copy不过,所以你应该小心这样的代码。或者也许在对象块应该复制 - 现在改变它是否太晚了?为单词参数传递括号应该与传递块具有相同的绑定行为。

当我上次检查时,我们不支持将对象和单词参数都作为块。这是因为我们无法找出一个好的模型来说明该行为应该是什么,至少显然是这样。覆盖单词查找实际上不适用于单词块,因为结果是不确定的。

如果有一个函数可以按顺序将一个块重新绑定到一系列对象,特别是对于重新创建 Rebol 的非真正嵌套作用域,那么该函数会非常有用,但如果该函数处于 IN 状态,则会非常令人困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 IN 与块而不是对象一起使用? 的相关文章

  • 如何设置“如果对象存在”条件?

    有没有办法检查对象是否存在 我不断收到 需要对象 错误 我知道该对象不存在 如果是这种情况 我想绕过我的代码的一部分 我不知道什么是我没有尝试过的 var codeName document getElementById testCode
  • Java 中将对象与 null 进行比较

    我正在尝试验证一个对象是否是null或不 使用以下语法 void renderSearch Customer c System out println search customer rendering gt try if c equals
  • Java 中的对象与扩展

    我可能是错的 因为我没有太多的 Java 经验 但这里有一个问题 我有一个包含许多方法的类 基本上它是一个简单的库 我创建了这个类的一个对象MyLibrary obj new MyLibrary parameters 这些参数设置库正确运行
  • 从现有数组创建新结果

    如果我有一个如下所示的示例数据 我需要从结果数组中获取 FinalResult 数组 let result type Science link www educatorsector com type Sports News link www
  • Angular 2 - 通过引用传递对象字段。可重复使用的编辑对象的方式

    我正在创建可重用的表组件 该组件将允许编辑对象字段 以准备将它们发送到 API 拥有一个对象 person name John job type IT title Software Engineer 我想将对象嵌套字段传递给组件并进行编辑
  • 具有字典属性的 C# 匿名对象

    我正在尝试将字典转换为匿名类型 每个键都有一个属性 我尝试用谷歌搜索 但我所能找到的只是如何将匿名对象转换为字典 我的字典看起来像这样 var dict new Dictionary
  • Python 对象属性 - 访问方法

    假设我有一个具有某些属性的类 在 Pythonic OOP 中 如何访问这些属性是最好的 就像obj attr 或者也许编写 get 访问器 此类事物可接受的命名风格是什么 Edit 您能否详细说明使用单下划线或双前导下划线命名属性的最佳实
  • Javascript:从已实例化的对象与原型创建对象

    我有一个相当学术的问题 并不特别适用于我正在做的任何事情 我只是真的想知道答案 假设我们在全局命名空间中有一个简单的对象定义 如下所示 TestObject function 它的原型中添加了一个方法 可以实例化为新对象本身 TestObj
  • PowerShell函数不会返回对象

    我有一个简单的函数来创建一个通用列表 function test genericType Type System Collections Generic List 1 type typedParameters System String c
  • 如何访问 Javascript 对象的第一个属性?

    有没有一种优雅的方式来访问对象的第一个属性 您不知道您的房产名称的地方 不使用类似的循环for in或者 jQuery 的 each 例如 我需要访问foo1不知道 foo1 名称的对象 var example foo1 stuff1 fo
  • 从平面数组创建嵌套对象

    我目前有一个对象数组 我正在尝试将其重塑为嵌套对象ID作为对象键 并将其作为目标ID与parentid 如果不是 0 我尝试了几种方法 但我很挣扎 主要绊脚石for me是超过一两层深度的任何东西 理想情况下 我需要它是动态的 这样它就可以
  • 如何在Java中计算对象的数字年龄[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道Java中对象的年龄 当我们使用new关键字时 Java中用户定义的对象被创建 但是什么时候它会被销毁 是跨越JVM的perm
  • 在这种情况下 b 是标量对象吗?

    include
  • 如何从 Xib 文件加载自定义 UITableViewCell?

    问题很简单 如何加载自定义UITableViewCell来自 Xib 文件 这样做可以让您使用 Interface Builder 来设计您的单元 由于内存管理问题 答案显然并不简单 这个线程 https stackoverflow com
  • 如何从一维数组和静态字符串创建对象

    我想要一个像 var obj ABC name true dob true CDE name true dob true EFG name true dob true CBA name true dob true XYZ name true
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1

随机推荐

  • Typescript如何使用稍后指定的泛型类型?

    首先 这是我第一次用CodeSandbox来创建一个简化的例子 欢迎任何有关如何改进这一点的建议 问题 我想介绍动物的事实 有些事实是所有动物共有的 而另一些则是动物特有的 在我的主要组件中App 我还不知道类型 所以我想保留它的通用性An
  • 通过 AlarmManager 设置不精确的警报时会有多少延迟? [复制]

    这个问题在这里已经有答案了 使用时AlarmManager要设置闹钟 除非您设置了精确的闹钟 否则可能会出现延迟 在指定时间之后的某个时间触发闹钟 是否可以保证延迟的范围是多少 我想成为一名负责任的开发人员 如果延迟不超过 例如 一分钟 则
  • 在iphone中的uiwebview中显示文本

    我想在 uiwebview 中显示文本数据 有人可以指导如何做同样的事情 使用 UIWebViews loadHTMLString 方法 void loadHTMLString NSString string baseURL NSURL b
  • 在 SQL 中使用变量模式持久保存复杂类型的最有效方法

    我在做什么 我正在创建一个 SQL 表 它将为复杂类型的对象提供后端存储机制 我正在尝试确定如何以最佳性能实现这一目标 我需要能够查询复杂类型的每个单独的简单类型值 例如 地址复杂类型中城市的字符串值 我原本以为可以将复杂类型值作为 XML
  • Eclipse 告诉我一个方法未定义,而实际上它已明确定义

    我正在 RAD 7 5 中工作 我正在将一个包从一个 Web 项目导入到另一个 Web 项目中 我实例化该类并尝试使用其方法之一 但出现该方法未定义的构建错误 该方法是公开的 除此方法外 所有其他方法均有效 我从中导入的项目已正确构建 我尝
  • 正则表达式 - 以特定字符串开头但不以另一个子字符串结尾

    给定两个字符串s1 and s2 我正在尝试编写一个正则表达式来匹配以s1但不以s2 示例 s1 测试 s2 坏 TEST 101比赛 测试一些 DESC 匹配 TEST 101 BAD 不应匹配 TEST SOME DESC BAD 不应
  • 无法让 Elasticsearch 与 Django 一起使用

    我正在尝试在 Ubuntu 14 04 上使用 Django 和 Haystack 以及 Elasticsearch 作为后端 我安装了 Elasticsearch 和 Haystack 运行 python manage py runser
  • 设计一个具有延迟加载属性的 Java POJO

    请考虑下面的例子 Web 应用程序为每个登录用户创建一个用户对象 这个对象有简单的String属性为firstName lastName 每个用户都可以拥有一个car也 考虑获取用户car非常昂贵 因此我们不希望在用户登录时设置用户的汽车
  • 无法使用 WebSockets 连接,未更改readyState

    我尝试了几种方法 甚至复制 粘贴http code google com p phpwebsocket 我使用 Google Chrome 5 0 375 70 beta 错误总是相同的 错误 INVALID STATE ERR DOM 异
  • Groovy Power 打印

    Groovy 有一个电源断言 但我想要一个电源打印 例如 def foo banna5 monkey 7 x 70 println foo foo monkey monkey x 2 x 2 看到 println 行中重复的 foo mon
  • 如何匹配CIM/RDF中的JAXB元素?

    尝试根据 IEC 61970 通用信息模型 用于电力系统模型 从 CIM XML 文件加载模型时 我发现了一个问题 根据 JAXB 元素之间的图表由 XmlREF XmlID 提供 并且这两者应该等于匹配 但在 CIM RDF 中 通过 I
  • 插入地图的首选/惯用方式是什么?

    我已经确定了将元素插入到 a 中的四种不同方法std map std map
  • 从区域和时间创建 std::chrono::zoned_time

    我有一个柏拉图意义上的日期时间 即某个日期和时间 例如 2022 年 1 月 18 日 15 15 00 并且我知道它代表哪个时区 例如 欧洲 莫斯科 我想创建std chrono zoned time 有可能吗 我在看构造函数似乎他们都需
  • C# MVC 视图之间没有提交传递对象

    我对我的拼写错误感到抱歉 我正在开发概念验证 C ASP NET MVC 应用程序 其中我需要在没有 post 和 get 的情况下在两个视图之间传递数据 一个视图启动一个模式对话框 我需要它们之间的通信 我们正在使用 JQuery 我有一
  • Android ListView 使用 SimpleCursorAdapter 更新

    嘿 我使用列表视图来演示存储在数据库中的条目 我还有一个 EditText 元素和一个将 EditText 的内容添加到数据库中的按钮 要将视图绑定到数据库内容 我使用 SimpleCursorAdapter 和以下填充函数 private
  • 如何更改 Java Swing TextArea 中的突出显示颜色?并且,更改与突出显示位置相对应的文本开头

    问题 1 通过使用默认荧光笔 我可以使聚焦线变为蓝色 现在我想把它改成其他颜色 有谁知道如何更改这个参数 解决了 问题 2 pos 是我想要突出显示的子字符串的开始索引 我使用 setCaretPosition pos 更新显示内容 但它始
  • 在Python中使用继承

    这是我的作业 我之前在网站上看到过它 但看起来它尚未解决 并且我收到的错误消息与之前提出该问题的人不同 问题的第一部分是定义从 Employee 继承的子类 Worker 并包含一个引用另一个员工 该员工的经理 的属性 您应该定义一个方法
  • JMeter:如何知道为什么 JMeter 中的正则表达式提取器没有提取数据

    我想知道为什么 JMeter 中的正则表达式提取器在参数化后不提取数据 响应消息 内部服务器错误 添加的表达式有 名称 EVENTVALIDATION id EVENTVALIDATION 值 名称 VIEWSTATE id VIEWSTA
  • 将 ASP.NET 应用程序连接到 QuickBooks Online Edition

    我正在尝试创建一个连接到 QuickBooks Online Edition 的 ASP NET 页面 读取几个值并显示结果 到目前为止 我已经下载了 QuickBooks SDK 但我无法找到有关如何创建 asp net 页面以连接到 Q
  • 如何将 IN 与块而不是对象一起使用?

    Rebol 中的 IN 函数查找字段是否在对象中 USAGE IN object word DESCRIPTION Returns the word or block in the object s context IN is a nati