首页
/ SoulverCore 3.1.0 版本发布:数学计算引擎的全面升级

SoulverCore 3.1.0 版本发布:数学计算引擎的全面升级

2025-07-08 07:35:38作者:明树来

SoulverCore 是一个强大的数学计算引擎框架,它能够解析和计算自然语言形式的数学表达式。与传统的计算器不同,SoulverCore 允许用户使用更自然的方式输入数学问题,比如"3小时15分钟加上45分钟等于多少"这样的表达方式。最新发布的 3.1.0 版本带来了多项重要更新,包括非十进制基数计算、时间区域转换增强、Unix 时间戳支持等新功能,以及全新的 API 接口。

非十进制基数计算功能

3.1.0 版本最引人注目的新特性之一是全面支持非十进制基数的计算。现在开发者可以在应用中实现:

  • 使用十六进制、二进制或八进制数进行单位换算,例如"0xF days in μs"(将十六进制的F天转换为微秒)
  • 支持通过"as base x"语法在不同进制间转换,如"0b101101 as base 16"(将二进制101101转换为十六进制2D)
  • 新增对hex()、bin()和oct()函数的支持,与Python中的语法保持一致
  • 添加"as oct"作为"as octal"的简写形式

这些功能特别适合需要在不同数字系统间转换的开发者,比如网络编程或底层系统开发场景。

数值舍入功能增强

新版本引入了更灵活的数值舍入方法:

  • "round 310 up to nearest hundred"(将310向上舍入到最近的百位数,结果为400)
  • "round 390 down to nearest hundred"(将390向下舍入到最近的百位数,结果为300)

这些表达式式的舍入方法比传统的四舍五入更加灵活,特别适合财务计算、库存管理等需要特定舍入规则的业务场景。

时区计算功能改进

时间计算是SoulverCore的重要功能之一,3.1.0版本在这方面做了多项改进:

  • 支持使用"time"作为注释词,如"3pm Sydney time to London time"
  • 在某些情况下支持隐式解释"from here",如"3pm to Chicago"会自动假设是从当前时区转换到芝加哥时间
  • 新增"time now"和"date today"短语支持
  • 添加了"Tampa, Florida"作为内置时区城市

这些改进使得时区转换更加自然和直观,特别适合开发需要处理多时区的全球化应用。

Unix时间戳支持增强

对于使用时间戳的开发者,新版本提供了更好的支持:

  • 支持毫秒级时间戳,如"1733823083000 ms to date"
  • 表达式"1733823083000 to date"现在会被解释为毫秒级时间戳(而非秒级),这更符合实际使用场景

单位系统更新

新版本添加了桶(barrels, bbl)作为新的容量单位,定义为158.987升。这使得SoulverCore能够更好地支持石油、化工等行业的特定计算需求。

API重大更新

3.1.0版本引入了两个重要的新API,极大地扩展了框架的应用场景:

LineCollectionEditingHelper

这是一个革命性的API,专门为构建类似Soulver的"文本视图+答案栏"计算界面而设计。它作为控制器层,连接视图(通常是UITextView或NSTextView)和LineCollection模型对象。开发者只需在用户编辑文本视图时通知LineCollectionEditingHelper实例,它就会自动处理LineCollection中需要添加/删除/更新的行。

随版本发布的示例Mac应用展示了如何使用这个API,仅用不到150行Swift代码就实现了带有语法高亮的计算文本视图和答案表格。这对于想要开发高级计算应用的开发者来说是一个巨大的生产力提升。

TokenListSemantics

这个新API为数学表达式提供了语义分析层,能够标记表达式中各部分的语义类型(数字、单位、时区等)。开发者可以通过TokenList对象的metadata.semantics获取语义对象,然后枚举表达式中的语义标记(包含范围信息)。

与直接使用TokenList相比,TokenListSemantics专门为语法高亮优化,其语义标记类型在不同版本间保持相对稳定。这使得实现表达式语法高亮变得更加简单可靠。

其他API改进

  • 新增FormattingPreferences.unformatted静态属性,用于获取最简格式的结果(无千位分隔符、四舍五入,使用货币代码而非符号)
  • 转换系统全面重构,虽然可能导致极少数现有代码需要调整,但带来了更大的灵活性和功能扩展空间

总结

SoulverCore 3.1.0通过引入非十进制计算、增强的时间处理和全新的API,显著提升了框架的能力和易用性。特别是LineCollectionEditingHelper和TokenListSemantics这两个新API,为开发者构建高级计算应用提供了强大工具。无论是需要处理复杂数学表达式的专业应用,还是想要添加智能计算功能的普通应用,都能从这个版本中受益。

登录后查看全文
热门项目推荐
相关项目推荐