遍历(Iterable)
Link to 遍历iterable
遍历注解可被应用于允许 ZS 遍历的类。
@IterableSimple
(需要实现Iterable
)@IterableList
(需要实现List
)@IterableMap
(需要实现Map
)
java Copy@ZenClass("crafttweaker.oredict.IOreDict")
@IterableSimple("crafttweaker.oredict.IOreDictEntry")
@ZenRegister
public interface IOreDict extends Iterable<IOreDictEntry> {
@ZenMemberGetter
@ZenOperator(OperatorType.INDEXGET)
@ZenMethod
IOreDictEntry get(String name);
@ZenGetter("entries")
List<IOreDictEntry> getEntries();
@ZenOperator(OperatorType.CONTAINS)
@ZenMethod
boolean contains(String name);
}
java Copy @Override
public Iterator<IOreDictEntry> iterator() {
return Arrays.asList(OreDictionary.getOreNames())
.stream()
.map(CraftTweakerMC::getOreDict)
.iterator();
}
在 ZS 中如何使用?
Link to 在-zs-中如何使用
ZenScript Copyfor oreDictEntry in oreDict {
print(oreDictEntry.name);
}
什么类可以被注解 || 额外信息
Link to 什么类可以被注解--额外信息
你可以注解所有实现了对应接口的类。
你需要提供一个字符串值以引用被遍历的 ZenScript的类名。