首页
/ 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,为开发者构建高级计算应用提供了强大工具。无论是需要处理复杂数学表达式的专业应用,还是想要添加智能计算功能的普通应用,都能从这个版本中受益。

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

项目优选

收起
kernelkernel
deepin linux kernel
C
24
9
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
64
19
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
392
3.88 K
flutter_flutterflutter_flutter
暂无简介
Dart
671
156
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
JavaScript
260
322
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
661
311
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.2 K
654
rainbondrainbond
无需学习 Kubernetes 的容器平台,在 Kubernetes 上构建、部署、组装和管理应用,无需 K8s 专业知识,全流程图形化管理
Go
15
1