Power Fx 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Power Fx 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Power Fx 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Power Fx 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Power Fx 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开源组织 微软
地区 不详
投 递 者 白开水不加糖
适用人群 未知
收录时间 2021-03-03

软件简介

Microsoft Power Fx 是一种基于类似电子表格公式的低代码通用编程语言。它是一种强类型、声明式和函数式的语言,根据需要可以使用命令式逻辑和状态管理。

Power Fx 是用一种人性化的文本来表达的。它是一种低代码语言,制作者可以直接在类似 Excel 的公式栏或 Visual Studio Code 文本窗口中进行操作。该语言简洁明了,让制作者和开发者都能轻松完成常见的编程任务。它可以实现从从未编程的人的"无代码"到经验丰富的专业人员的"专业代码"的全方位开发,中间没有学习和重写的麻烦,从而使不同的团队可以协作并节省时间和费用。

Power Fx 通过类似电子表格的声明式公式将对象绑定在一起。例如,将 UI 控件的 Visible 属性视为电子表格单元格,并具有一个基于其他控件的属性来计算其值的关联公式。公式逻辑会自动重新计算,类似于电子表格会自动执行,从而影响控件的可见性。此外,在需要时,Power Fx 还提供命令式逻辑。

所有编程语言(包括 Power Fx)都有表达式:一种表示对数字、字符串和其他数据类型进行计算的方式。例如,在大多数语言中,质量*加速度表示质量和加速度的乘法。表达式的结果可以放在一个变量中,作为一个过程的参数使用,或者嵌套在一个更大的表达式中。

微软方面称,Power Fx 在这一点上更进一步。一个表达式本身并没有说明它在计算什么。这取决于制作者是否将其放置在一个变量中或将其传递给一个函数。Power Fx 不是只写一个没有特定意义的表达式,而是写一个公式,将表达式与一个标识符绑定。人们把力=质量*加速度写成一个数学意义上的计算力的公式,这个公式永远是真的。当质量或加速度发生变化时,力会自动更新为新的值。一个表达式描述了一种计算方法,一个公式给这种计算方法起了一个名字,并把它作为一种配方。“这就是为什么我们把 Power Fx 称为公式语言。”

例如,Stack Overflow 的这个公式,可以按照相反的顺序搜索一个字符串。在 Excel 中,它看起来如下图:

Power Fx 的工作原理与此公式相同,但将单元格引用替换为控件属性引用:

当输入控件的值发生变化时,Label控件会自动重新计算公式并显示新的值。这里没有像其他语言中常见的OnChange事件处理程序。

另一个例子,使用公式来计算屏幕的填充色。当控制红、绿、蓝的滑块改变时,背景色会自动改变,因为它正在重新计算。

滑块控件没有像其他语言中常见的 OnChange 事件。根本没有办法明确地设置Fill属性值。如果颜色没有按照预期工作,你需要看这一个公式来了解为什么没有工作。你不需要在应用程序中搜索,找到一段代码,在一个意外的时间设置属性。没有时间元素,始终保持正确的公式值。

当滑块设置为深色时,红色、绿色和蓝色的标签将更改为白色以进行补偿。这是通过在每个标签控件的Color属性上使用一个简单的公式完成的。

这样做的好处是,它与Fill颜色发生的情况是隔离的,这是两个完全不同的计算。代替大型的整体过程,Power Fx逻辑通常是许多独立的较小公式。这更容易理解,并且可以在不干扰现有逻辑的情况下进行增强。

Power Fx 是一种声明式语言,就像 Excel 一样。制作者定义了他们想要的行为,但如何和何时完成这些行为则由系统来决定和优化。为了实用,大部分工作都是通过没有副作用的纯函数来完成的,这使得 Power Fx 也同 Excel 一样是一种函数式语言。

目前,Power Fx 已集成到 canvas app 中。微软方面正在从 Power Apps 中提取它,并计划在 Power Platform 上扩大其使用范围。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (10)

加载中
震惊,用了这么多年的excel,居然是一门语言
03/04 20:59
回复
举报
好东西
03/04 15:46
回复
举报
这不算语言吧。作为语言--起码要能脱离编辑环境运行。
03/04 13:45
回复
举报
怎么,java需要jvm就不是语言了?
03/04 18:24
回复
举报
该评论暂时无法显示,详情咨询 QQ 群:912889742
现在的DAX和M函数,复杂一点就得嵌套好多层,希望power fx可以找到破解之道,不然也是会非常小众
03/04 13:07
回复
举报
活字格
03/04 12:39
回复
举报
建议wps也做一套类似的语言
03/04 08:38
回复
举报
能干嘛
03/04 08:22
回复
举报
03/04 08:32
回复
举报
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
10 评论
19 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部