<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fcomponent%2Fzh</id>
	<title>API/component/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fcomponent%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/component/zh&amp;action=history"/>
	<updated>2026-08-24T15:14:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=API/component/zh&amp;diff=1020&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/component/zh&amp;diff=1020&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Component(组件) API =&lt;br /&gt;
&lt;br /&gt;
component(组件) API可用于访问电脑中的组件并与其交互。读者还可查看[[Component/component access/zh|有关访问组件的页面]]。&lt;br /&gt;
&lt;br /&gt;
* `component.doc(address:string, method:string): string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回指定组件中指定方法的对应文档字符串（若存在）。请注意，你也可以对代理对象的方法使用`tostring`来获取此字符串。例如`tostring(component.screen.isOn)`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.invoke(address:string, method:string[, ...]): ...`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;调用指定组件的指定方法，将其余参数传递给此方法作为其参数。返回方法调用的结果，即方法的返回值。调用时可能会抛出异常，依被调用方法的实现而异。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.list([filter:string[, exact:boolean]]):function`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回一个表，其中列出当前所有连接到电脑的组件，表中以组件地址为键并以组件类型为值。此方法还通过`__call`提供了迭代器语法，所以你还可以这样调用：`for address, componentType in component.list() do ... end`  &lt;br /&gt;
若设置了`filter`（过滤器），则此方法只会返回包含过滤器字符串（**并非**模式字符串/正则表达式）的组件。例如，`component.list(&amp;quot;red&amp;quot;)`将会返回`redstone`组件的结果。  &lt;br /&gt;
如果将`true`作为第二个参数传递，则执行精确匹配。例如`red`在此情况下**不会**匹配`redstone`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.methods(address:string):table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回一张表，其中包含指定组件提供的所有方法名。表中的键为方法名，而表中的值代表了此方法是否为直接调用。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.proxy(address:string):table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取某组件的“proxy”对象（代理对象），代理对象将组件提供的所有方法以字段的形式给出，因此可以更直接地调用它们（无需通过`invoke`）。这也是用来生成各个组件类型的“首选组件”的方法，也即你通过`component.某某`（“某某”为组件类型）方法得到的东西。  &lt;br /&gt;
例如，你可以这样使用此方法：`component.proxy(component.list(&amp;quot;redstone&amp;quot;)()).getInput(sides.north)`，这段代码会为你获取`component.list`迭代器返回的第一个`redstone`组件的代理对象，然后调用它的`getInput`方法。  &lt;br /&gt;
请注意代理对象无论如何都至少有两个字段：一是`type`与组件的类型名，二是`address`与组件的地址。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.type(address:string):string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取指定组件的类型。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.slot(address:string):string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回安装组件的插槽编号。若无意义则返回-1。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.fields(address:string):string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;未记录  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.get(address: string[, componentType: string]): string | (nil, string)`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;尝试将简写地址（部分地址）解析为完整地址。成功时返回完整地址，失败时返回`nil`和一条报错信息。可选是否通过组件类型进行筛选。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.isAvailable(componentType: string): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;检查指定的组件类型是否存在首选组件。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.getPrimary(componentType: string): table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取指定类型组件的首选组件的代理对象。如果指定类型无首选组件则抛出异常。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `component.setPrimary(componentType: string, address: string)`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;为指定组件类型设定一个新的首选组件。地址可以为简写地址，但必须合法，否则应当为`nil`。将其设定为`nil`和新值时分别会触发`component_unavailable`和`component_available`信号。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
请注意component API有一个元表，支持以下语法：&lt;br /&gt;
&lt;br /&gt;
```lua local component = require(&amp;quot;component&amp;quot;) local rs0 = component.getPrimary(&amp;quot;redstone&amp;quot;) local rs1 = component.redstone --语法糖 print(rs0 == rs1) --输出值为true ```&lt;br /&gt;
&lt;br /&gt;
== 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:API/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>