当前位置: 首页 > news >正文

MoonSharp 文档四

目录

10.Platform Accessors(平台访问)

预定义平台访问器的快速浏览

更改平台访问器

实现你自己的平台访问器

自定义平台访问器的某些方面

11.Script options(脚本选项)

局部选项

一个快速覆盖脚本选项的示例

全局选项

12.Debugger integration(调试器集成)

使用可用的调试器之一

使用基于 Visual Studio Code 的调试器

使用基于 Flash 的远程调试器

自定义远程调试器

实现你自己的调试器


MoonSharp 文档一-CSDN博客

MoonSharp 文档二-CSDN博客

MoonSharp 文档三-CSDN博客

MoonSharp 文档五-CSDN博客

10.Platform Accessors(平台访问)

如何改变MoonSharp与操作系统交互的方式

官方文档:MoonSharp

这个教程会比较简短,并且假设你已经完整地学习了有关脚本加载器的教程。

如果你还没有学习,请先回去把脚本加载器的所有内容学习完毕。

平台访问器与脚本加载器非常相似,尽管它们服务于不同的目的。平台访问器旨在提供对操作系统API的访问,以适应标准库或 MoonSharp 的其他附属部分。特别地,io、file和os模块严重依赖于平台访问器,但其他方法也会经过平台访问器,如 print、debug.debug等。

预定义平台访问器的快速浏览

根据你运行的平台,你可以选择以下平台访问器:

•  StandardPlatformAccessor:实现所有需要的方法,访问文件、环境变量等。
•  LimitedPlatformAccessor:非常有限的支持。禁用 io、file 和部分 os 模块。

如果没有重新定义,MoonSharp 默认使用的平台访问器是便携类库构建的LimitedPlatformAccessor,以及其他构建的 StandardPlatformAccessor。

更改平台访问器

更改平台访问器会影响所有脚本,无论是已创建的还是未创建的。因此,一旦脚本已经创建,就绝不应该更改平台访问器。为了本教程的目的,我们还是会这样做,但请不要在实际中这样做。

static void ChangePlatform()
{
	// This prints "function"
	Console.WriteLine(Script.RunString("return type(os.exit);").ToPrintString());

	// Save the old platform
	var oldplatform = Script.GlobalOptions.Platform;

	// Changing platform after a script has been created is not recommended.. do not do it.
	// We are doing it for the purpose of the walkthrough..
	Script.GlobalOptions.Platform = new LimitedPlatformAccessor();

	// This time, this prints "nil"
	Console.WriteLine(Script.RunString("return type(os.exit);").ToPrintString());

	// Restore the old platform
	Script.GlobalOptions.Platform = oldplatform;
}

实现你自己的平台访问器

你可以实现自己的平台访问器来定义某些函数的行为。

与脚本加载器一样,你有两个主要选择:继承PlatformAccessorBase(推荐)或实现IPlatformAccessor。

要根据实际运行的平台做出决策,可以查看PlatformAutoDetector,它执行大量运行时检查来尝试了解它运行在哪个平台上。

自定义平台访问器的某些

相关文章:

  • LLM学习之路-01-第一章-预训练/搞懂大模型的分词器(二)
  • electron builder打包时,出现errorOut=ERROR: Cannot create symbolic link
  • Talking Head Review (数字人算法综述)
  • Django 初始化导入数据详解
  • 数据结构:有序表的合并
  • Unity 扩散式布局
  • Unity 带阻尼感的转盘
  • 数智读书笔记系列015 探索思维黑箱:《心智社会:从细胞到人工智能,人类思维的优雅解读》读书笔记
  • Openlayer+天地图+山东天地图
  • Html5学习教程,从入门到精通, HTML5超链接应用的详细语法知识点和案例代码(18)
  • uni-app+vue3学习随笔
  • 深度学习PyTorch之数据加载DataLoader
  • KafkaRocketMQ
  • AI智能导航站HTML5自适应源码帝国cms7.5模板
  • word甲烷一键下标
  • 08 HarmonyOS NEXT 仿uv-ui Tag组件开发教程系列(二)
  • 【Java学习】包装类
  • 【商城实战(20)】商品管理功能深化实战
  • 【理想解法学习笔记】
  • 计算机操作系统
  • 明起迎降雨最强时段,南方将有成片暴雨大暴雨
  • 焦点访谈丨售假手段又翻新,警惕化肥“忽悠团”的坑农套路
  • 解读|俄方称愿与乌方共同起草和平备忘录,特朗普多轮通话外交有效吗?
  • 去年中企海外新增风电装机量5.4GW,亚太区域占比过半
  • 黄仁勋:新一代计算平台GB300三季度上市,AI计算能力每十年提升100万倍
  • 深一度|上座率连创纪录撬动文旅,中超可否复制大连模式