问题标签 [declarative]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 在 asp:hyperlink 中分配声明性值的问题。错误:这不是scriptlet。将输出为纯文本
我正在尝试这样做:
但是我得到了错误:
这不是scriptlet。将输出为纯文本。
当我将鼠标悬停在我的声明性声明上时。
有任何想法吗?谢谢。
java - 是否有一种将 XML 解析为 Java 对象的声明方式?
我正在将 XML 文件的导入函数写入我的 Java 应用程序。我正在使用XOM来解析 XML 文件。解析XML的代码不太好理解,有些硬编码.getChild(3)
等等。与声明性 XML 文档相比,很难遵循代码。
难道没有更易于维护的方式将 XML 文档解析为 Java 对象吗?我想以一种更具声明性的方式来使用它,我可以在其中指定哪些标签对应于哪些 Java 类。
c# - 基于属性的编程有什么优势?
我正在使用 WCF RIA 服务,并且遇到了一个使用属性的示例:
虽然属性不限于 WCF RIA,但它让我想起了一个问题:为什么声明式或基于属性的编程更适合于“老式方式”编写验证例程?
谢谢,
斯科特
python - sqlalchemy:关闭声明性多态连接?
sqlalchemy 有没有办法在单个查询中关闭声明性的多态连接加载?大多数时候它很好,但我有:
我想进行查询,以便获得所有 Bx > 10 的 A.id,如果 A 实际上是 B,或者 Cy == 'blah',如果 A 实际上是 C,全部按 p 排序。
为了迭代地进行,我从第一部分开始——“如果 A 实际上是 B,则获取 Bx > 10 的所有 A.id”。所以我想我会从外部连接开始:
...除了似乎没有办法避免让该 outerjoin((B, B.id == A.id)) 子句生成子选择中 A 中的所有内容与 B 中的所有内容的完全连接。如果 B 不从 A 继承,那么这不会发生,所以我认为是多态声明性代码生成做到了这一点。有没有办法关闭它?或者强制外连接做我想做的事?
我想要的是这样的:
但相反,我得到了类似的东西:
...顺便说一句,如果不可能,那么后者的效率是否低于前者?sql 引擎会实际执行该内部连接,还是会忽略它?
python - SQLAlchemy 上下文相关函数,用于在插入和更新时创建复合值
我正在尝试弄清楚如何添加一个上下文相关函数(例如 def get_user_full_name()),该函数将从列的默认和 onupdate 规范中触发。我正在尝试设置一个复合字段,将名字和姓氏组合成一个全名值,以避免在所有查询中不断地连接这两个字段。
我正在使用声明性方法。这是一个类似模型的例子:
这是我编写的函数,它在堆栈跟踪中报告 FirstName 或 LastName 键均无效:
我不清楚如何引用现有数据的两列(名字和姓氏)来创建一个复合值来存储以便于检索。例如,如果我有一个名为 John Doe 的用户,get_user_full_name 方法应该采用“John”和“Doe”并返回“John Doe”的全名值。
在文档中它指的是 context.current_parameters 但在我的情况下不存在。我怀疑这是因为我们使用了声明性方法。如果它确实有效,我的 get_user_full_name 函数将如下所示:
我知道这可能是微不足道的,但我似乎无法破解有关此信息存储位置以及如何动态访问它的代码。
一点见解将不胜感激。我也对更优雅的方法持开放态度。
提前致谢...
干杯,
保罗
c# - 在 WebControl 中使用 `<%=` 是不是一个坏主意
最近我开始<%=
在我的 Web 控件中更频繁地使用。通常我会在代码后面设置字符串属性,然后将它们吐出到表单上。
这是一个坏主意吗?
例如。
代码背后:
特性:
页面加载:
在页面上:
function - Ada:声明性部分、函数和包
我有一个关于声明性部分、函数和包的查询。我有一个如下所示的包裹。由于 Compute_X1 函数的复杂性,我创建了一个“独立的”来计算这个函数。从 Compute_X1 返回的值是 X1,将在函数 J21 中使用(J21 将 X1 作为第一个参数)。
包装规格:
包体为:
我已经为 Compute_X1 和 J21 创建了存根。
在编译包体 Compute_Jacobian.adb 时,我收到以下错误消息:
我的问题是如何计算 X1 并将其用于计算函数 J21。
我可以尝试直接在“主”代码(此处未显示)中计算 X1(从那里创建“独立”),然后将其用作计算 J21 的正常参数。但是我想要上面的结构(在我上面的帖子中),并在 Compute_Jacobian 包中计算 X1。
非常感谢...
database - 关联对象模式扩展详细信息的高效查询
细节
- A
Person
有很多Objective
s。 Objective
s 有Person
关于 s 的特定细节Activity
。- An
Activity
包含通用信息,例如世界纪录。 - A
Person
可以组织一个Event
尝试Objective
。 - A
Person
邀请其他Person
s 与 an 一起观看Event
anInvitation
。
架构
注意:示例模式图中仅列出了 backref,用“(fk)”表示。箭头表示正常关系。
问题
我希望立即显示所有收到的所有s 的大部分Event
、Objective
和详细信息(无论状态如何,但仍需要状态)。Activity
Invitation
Person
在我尝试处理这样的 JOIN 之前,是否有更好的方法来表示问题?我相信Person
-> Invitation
<-Event
是一个关联对象模式,但我不确定如何以干净、有效的方式为每个返回的获取Objective
和信息。Activity
Invitation
奖励:提供示例 SQLAlchemy 查询。
programming-languages - 声明式编程语言的反馈、资源和信息
我一直在思考一种新语言背后的一些概念。起初它是一种玩具,但现在我想知道它是否真的意味着什么。我将这个问题发布到 Stack Overflow 以查看之前是否已完成,以及是否可以获得任何反馈、想法或其他信息。
我主要是在阅读了Jonathan Edward 关于声明式编程的演讲后开始思考这个问题的。然后我将它与我的一些旧想法以及我在现代语言中看到的东西混合在一起。
声明式编程背后的主要思想是“什么”与“如何”。然而,我已经听过很多次了,所以它似乎几乎总是像“有趣”这个词,它实际上并没有告诉你任何东西,这令人沮丧。
然而,在 Jonathan Edward 的版本中,他首先强调惰性求值。这会产生一些有趣的结果,即函数式反应式编程 (FRP)。这是带有动画的 FRP 示例(使用我编写的语法):
因此,如果输入发生变化,这里的值会自动改变。在我最喜欢的语言之一D中,“纯”和“不纯”函数之间存在区别。纯函数是与外界没有任何联系,只使用其他纯函数的函数。不然就不纯了。关键是你总是可以相信一个纯函数为给定的参数返回相同的值。
我想这里也适用类似的传递原则。我们的杂质是time
。time
被、 存在x
、 因此y
、 因此所触及的一切new Point(x, y)
都是不纯的。然而,通知(2 * 500)
是纯粹的。所以你看到这告诉编译器它的限制在哪里。我认为它就像用变量简化数学表达式:
通过告诉编译器什么是纯的,什么不是,我们可以大大简化我们的程序。另一点是急切或可变的数据。乔纳森爱德华认为输入是可变的和渴望的,但输出是功能性的和懒惰的。基本上,给定新的输入,程序定义了一个原子状态变化,然后输出只是当前状态的一个函数。如果您想了解为什么这很重要,请参阅演示文稿。输入不纯。惰性求值有助于定义原子状态变化。让我们看一下程序是如何编写的:
这里的bind
关键字表示如果begin
发生更改,则执行以下代码。mutable
关键字表示输入不是懒惰的,而是急切的。现在让我们看看“原子状态变化”如何表示它。
现在,我们看到了一些对于程序员来说可以变得更容易、更易读的东西。首先是丑陋的step
变量,以及我们每次必须如何递增和测试它。下面是一个新的改进版本的示例:
这样更好。不过,并不完美。但如果我知道完美的答案,我就不会在这里了,对吧?
这是一个更好的例子,使用游戏引擎:
我喜欢这不需要回调、事件,甚至循环或任何东西,而且线程是显而易见的。更容易判断发生了什么,而且不仅仅是类似于 Python 的语法。我认为这就像语言开发人员意识到人们使用标签和 goto 的只有少数东西:条件分支和循环。因此,他们将 if-then-else、while 和 for 构建到语言中,标签和 goto 已被弃用,编译器和人们可以知道发生了什么。我们使用的大部分内容都来自该过程。
回到线程,这样做的好处是线程更加灵活。如果编译器可以自由地做它想做的事,因为我们已经更接近说出我们想要的东西,而不是我们想要它如何完成。因此,编译器可以利用多核和分布式处理器,但仍然可以补偿没有良好线程支持的平台。
我想提最后一件事。这就是我对模板的看法。这是一个概念性的鸡蛋,在我开始编程时开始发展(实际上是大约 2 年前),然后开始破解。基本上它是抽象的原则,但它比类和对象延伸得更远。
这与我对功能的看法有关。例如:
好的,add
返回一个int
,但它是什么?这有点像是在int
等待发生。就像一个没有几块的拼图。可能性有限,只有某些部分适合,但当你完成后,你就有了一个成品,你可以在其他地方使用。就像我说的,这就是抽象的原则。以下是一些我认为是抽象+缺失部分->具体关系的示例:
- 函数 + 参数 -> 值
- 抽象类+方法->类
- 类 + 实例值 -> 对象
- 模板 + 参数 -> 函数或类
- 程序 + 输入 + 状态 -> 输出
它们都是密切相关的。似乎可以利用这一点。但是怎么做?同样,这就是为什么这是一个问题。但是惰性求值在这里很有趣,因为您可以将仍然缺少部分的东西传递给其他东西。对于编译器来说,这主要是将名称取消引用到杂质的问题。就像我上面的例子:
你给编译器的部分越多,它就越能完成它并将程序简化为它的基本核心。并且add
上面的函数将在编译时自动解析,因为它不依赖于外部资源。甚至可以解析大量的类和对象,以及大部分程序,这取决于编译器的智能程度。
目前为止就这样了。如果你已经看过这些事情的例子,我想看看。如果您有任何想法、创新、资源或反馈,我也将不胜感激。
java - 使用 osgi 的声明式服务时,我可以在同一个组件中提供和引用服务吗?
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="sensor_test">
<implementation class="test.sensor.version1.serviceImpl.SensorServiceImpl"/>
<service>
<provide interface="test.sensor.version1.serviceInterface.SensorServiceInterface"/>
</service>
<reference bind="setOntologyService" cardinality="0..1" interface="test.ontology.version1.serviceinterface.OntologyServiceInterface" name="OntologyServiceInterface" policy="dynamic" unbind="unsetOntologyService"/>
</scr:component>
对于上面显示的内容,可以在同一组件中提供和引用服务吗?例如,有两个捆绑包 A 和 B。A 提供服务供 B 使用,B 也提供服务供 A 使用。这种情况我该怎么办?