可以通过安装 shell 命令来使用 VS code,如这个问题所示:How to open Visual Studio Code from the command line on OSX?
Jetbrain 的 Rider 是否也能实现同样的效果?
我挣扎的软件开发的一个主要方面是将正确的责任委托给我的程序中的类.在我的第一个初级角色工作,我也接触到许多不同的设计模式和想法,有时信息可能是压倒性的.
显然,当我们构建软件时,我们倾向于声明一个类应该只对一件事和一件事负责.它应该做得很好,仅此而已.因此,在Factory模式的情况下,Factory类应负责构建产品并公开允许导向器从工厂中提取产品的界面.
然而,工厂类显然需要从某个地方接收数据来构建产品,没有输入数据我们没有输出产品.因此,我想知道是否包含工厂查询数据库的功能是否合适?我的理由是,如果工厂的任务是构建特定产品,那么它还应负责检索构建该产品所需的数据.但我不能100%确定这是否正确.
或者,是否应该有一个存储库类,谁负责从数据库中检索有问题的数据,然后可以将其传递给工厂以组装成所需的产品?在这种情况下,使用存储库类似乎有点过分,因为我们有一个类,它将包含大量不同的数据,然后必须将它们运送到工厂类.
如果我们还要记住鲍勃叔叔的教导,即声明函数和方法绝对不应超过三个参数,那么我们将通过将大量数据传递给工厂来打破这一规则.如果我们在传递给工厂之前首先将数据组装成一个包含类,那么我们基本上是在存储库类中完成工厂的工作.
在这方面我会非常感激一些指导,因为我脑子里的线条很模糊,我不知道该怎么办.
我试图弄清楚如何实现setDisabledState作为接口一部分的函数ControlValueAccessor,但我无法弄清楚如何从组件本身的外部实际触发该函数。
在我有的组件内
control = new FormControl();
setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this.formField.nativeElement, 'disabled', isDisabled);
}
Run Code Online (Sandbox Code Playgroud)
如果我在组件的 NgOnInit 中执行以下操作,这会将我的禁用样式设置得很好。但我希望能够通过属性绑定来控制组件的禁用状态。
this.tenantListFormControl.disable();
Run Code Online (Sandbox Code Playgroud)
然而,实际上没有任何东西触发该函数。
我试过了
<app-custom-control [attr.disabled]="true"></app-custom-control>
<app-custom-control disabled></app-custom-control>
<app-custom-control [disabled]="true"></app-custom-control>
Run Code Online (Sandbox Code Playgroud)
最后一个甚至无效,因为“任何适用的指令等均未提供禁用的属性...”,因为我没有@Input()在组件上的任何位置禁用。无论如何这都没有帮助,因为一旦我设置了它,我应该如何处理它,我无法订阅它并以这种方式触发 setDisabledState 函数,因为它不是可观察的。
我如何实际触发此功能并禁用我的组件?
我正在使用 JSON 模式模板来验证在线表单收到的数据。验证器的要求之一是它允许根据对其他问题给出的答案要求一些问题。
例如,如果问题是Do you want a loan?并且用户回答yes,则What is the loan to be used for?需要将问题的答案设置为 required 以便用户必须提供答案。如果答案是,no则不需要第二个问题。
我使用定义来定义我的问题,然后在下面的主要问题模式中引用它们。我通过使用 Draft-07 中提供的 if-then-else 功能读到了这一点,我可以使用它根据其他问题的答案来设置某些问题。
在这个特定的例子中,我想要发生的是,如果用户输入Home improvements (General)问题 9的答案,那么问题 257 将被设置为必需且必须回答,否则应该抛出错误。
目前,当我将此验证器输入https://www.jsonschemavalidator.net/ 时,它无法按预期工作。实际情况是,即使问题 9 的答案是“家庭装修(一般)”,问题 257 的答案也可以留空
如何更改我的架构以提供我想要的行为?
JSON 架构
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"question3-9": {
"type": "object",
"properties": {
"answer": {
"type": "string",
"enum": [
"Home improvements (General)",
"Other"
]
}
}
},
"question3-257": {
"type": "object",
"properties": { …Run Code Online (Sandbox Code Playgroud) 我有一个我已经构建的程序,它接受一个 JSON 对象并根据输入的详细信息生成一个 JSON 模式文件。当我使用此程序为较小的 JSON 对象生成架构时,该架构正常工作并按预期进行验证。在这个较小的模式中,只有一个 if-then-else 块。
但是,当我尝试生成一个使用多个 if-then-else 块的模式时,if-then-else 验证似乎完全停止工作,并允许任何事情通过。
为了更清楚,我将在下面发布一个示例。
JSON 架构
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"question6-99": {
"type": "object",
"properties": {
"answer": {
"type": "string",
"enum": ["Yes", "No"]
}
}
},
"question6-100": {
"type": "object",
"properties": {
"answer": {
"type": "string",
"enum": ["Mr","Ms","Mrs","Miss","Dr","Rev","Sir","Lady","Lord","Prof", ""]
}
}
}
},
"type": "object",
"properties": {
"form_submission": {
"type": "object",
"properties": {
"sections": {
"type": "object",
"properties": {
"6": {
"type": "object",
"properties": {
"questions": {
"type": "object", …Run Code Online (Sandbox Code Playgroud) 我在 bash 中有一个数组,声明为
string='var1/var2/var3';
IFS='/' read -r -a array <<< $string
Run Code Online (Sandbox Code Playgroud)
所以数组是 ["var1", "var2", "var3"]
我想在指定的索引处添加一个元素,然后移动已经存在的其余元素。
所以结果数组变成
["var1", "newVar", "var2", "var3"]
我一直在尝试使用和循环来做到这一点,但我觉得有一些更好的“bash”方式来做到这一点。数组可能不是固定长度,因此它需要是动态的。
我需要一段能够获取长度字符串数组的代码l,提取之后存在的所有元素i,其中i特定索引小于l,然后将提取的元素放入新数组中.
基本上如果我们有以下内容:
["A", "B", "C", "D", "E", "F"]
在这种情况下l = 6,如果我们接受,n = 3那么代码应该创建一个新数组
["D", "E", "F"]
我已经编写了代码来执行此操作,但我不禁认为有更好,更简洁的方法来实现它.
这就是我所拥有的:
List<string> tempElements = new List<string>();
for (int i = startOfMessage; i < elements.Length; i++)
{
tempElements.Add(elements[i]);
}
string[] usableMessageElements = tempElements.ToArray();
Run Code Online (Sandbox Code Playgroud)
一个相对简单的问题,但我的目标是减少尽可能多的初级代码.
我正在使用一系列正则表达式模式从代码中删除HTML元素。我还需要删除style="{stuff}"文件中也存在的属性。
目前,我style.*?只匹配单词style,但是我认为通过.*?在正则表达式中添加样式声明后,它还可以匹配零到无限个字符吗?
我也有style={0,1}"{0,1}.*?"{0,1}哪些匹配项:
style=""
style="
style
Run Code Online (Sandbox Code Playgroud)
但是不匹配style="something",再次在此正则表达式中,我希望.*?匹配第一个"和第二个之间的所有内容",但事实并非如此。我需要做些什么来更改此正则表达式,使其与以下所有项匹配:
style="font-family:"Open Sans", Arial, sans-serif;background-color:rgb(255, 255, 255);display:inline !important;"
style=""
style="something"
style
Run Code Online (Sandbox Code Playgroud) 我将列表传递给在列表上运行的方法.但是,首先我想迭代列表并在进行任何进一步处理之前检查列表中是否有任何空值.
最初我认为使用该IEnumerable.All()方法会对此有所帮助,但是这个方法实际上会检查列表的所有元素是否满足条件,我想依次检查每个元素,如果有的话则为null,然后处理它.
这是我已经使用的(非工作)代码.我不确定如何在if语句条件下使用它.
if (questions == null || questions.Any() == false || questions.All(q => q == null))
{
throw new ArgumentException("Exception raised.");
}
Run Code Online (Sandbox Code Playgroud)
基本上我想检查:
前两个已经完成,它只是第三个.
我希望能够将答案字段验证为数值。下面的代码片段是一个答案,是更大的答案词典的一部分。每个答案都遵循通用格式,因此答案字段需要为字符串类型。
"1": {
"answer": "80035",
"web_validated": true,
"web_error_string": "",
"server_error_string": ""
},
Run Code Online (Sandbox Code Playgroud)
当我们使用 JSON Schema 来验证答案字典时,这会产生一个问题。我们需要将答案字段验证为数值,这是由字典必须遵守的 JSON 模板决定的。以下是字典中一个问题的上述答案的模板片段。
{
"id": "1",
"text": "KFI Number (Null required check)",
"type": "text",
"source": "phoebus",
"kfid_mapping": "KFID000",
"kfid_mapping_value": "",
"valid_answers": null,
"display_online": "readonly",
"required": "1",
"display_internal": "yes",
"hints": null,
"logic": null,
"rules": null,
"reason": null,
"conditional_explanation": null,
"conditional_question_id": null,
"conditional_question_answered": null,
"enabled": "1",
"order": "2",
"fk_section_id": "1",
"validated": false
}
Run Code Online (Sandbox Code Playgroud)
我们当前用于验证问题 ID 的 JSON 架构:1。
"definitions": {
"question1-1": {
"type": "object",
"properties": {
"answer": …Run Code Online (Sandbox Code Playgroud)