问题标签 [associated-value]

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.

0 投票
1 回答
142 浏览

cakephp - Cakephp4,如何在实体对象中加载关联数据?

我有一个用户表和一个角色表。一个用户只有一个角色。所以在 UsersTable.php 中:

现在在 User.php (Entity!!) 我需要用户角色的角色名称。但我只有没有关联数据的用户实体。我现在有:

这行得通,但 TableRegistry 在 cake4 中被标记为过时,我找不到任何其他方式来使这项工作。这样做的正确方法是什么?

0 投票
2 回答
349 浏览

arrays - Swift - find object in array of enums with associated values

I have this enum:

And an array of animals:

I need to find a Cat object in this array by a property that Dog doesn't have. litterBoxId for example.

This of course has an error:

How can I accomplish this? I also tried

0 投票
1 回答
47 浏览

swift - Swift - 嵌套枚举 - 如何对所有具有关联值的嵌套枚举执行相同的操作?

我想打印嵌套枚举的原始值。例如,如果我有一个包含多个案例的顶级食品枚举(为简单起见,我们只说两个:水果,蔬菜),每个都是字符串枚举(水果:字符串,蔬菜:字符串等),有没有办法打印内部关联值而不在顶级枚举中执行 switch 语句?

我当前的代码如下。如您所见,我添加到 Food 的案例越多,var description 中的冗余代码就越多。我想为所有打印内部枚举的 rawValue 的情况编写一个动作。

没有开关可以吗?

0 投票
0 回答
38 浏览

ios - 使用 Enums 的关联值将 case 从第一个 Enum 链接到第二个,然后从 CaseIterable 第二个调用关联的函数值

我正在构建一个天气应用程序,该应用程序将提供对多个天气提供者的访问,从这些提供者中返回的数据集略有不同。我想让处理数据设置的系统尽可能通用,以加速新提供者的添加。

首先,我有一个枚举RValueUnits,其中包含可以返回值的所有可能单位:

例如,一些提供商可能会以 .mm 为单位返回降水量,而另一些则以 .cm 为单位。

我想要的是每个提供者都有一个自己的枚举,列出他们返回的所有属性,包括返回类型。例如:

与每个案例关联的 setter 函数处理属性的数据设置。例如,它将提供程序的返回值类型与用户的偏好进行比较,如果不同,它将在将其设置为关联属性的值之前对其进行更改,例如apparentTemperature在上述情况下。

我有一个问题和一个问题:

首先,我希望 DarkSkyProps 是 CaseIterable,所以设置是自动的。但是,我不知道如何调用迭代案例的关联 setter 函数:

其次,理想情况下,我还希望有枚举 ForecastSource,例如:

并且每个都与 Props 枚举相关联(即 ForecastSource.DarkSky 链接到 DarkSkyProps),例如:

因此,我只需要编写类似的内容,例如:

有办法吗?

最后,考虑到我的目标,是否有更合适的完全不同的方法?

非常感谢!

0 投票
1 回答
73 浏览

rust - 将关联的非可变常量数据分配给枚举变量

注意:我的问题与此问题类似,但似乎无法解决我的用例。 枚举变体可以具有恒定的关联值吗?

问题说明

我的服务器返回一个内部映射到枚举的国家(很长的列表)(有一组提前知道的有效可能性)。

我需要一些与国家相关的数据(例如语言)。

相关数据是“恒定的”,并且出于人体工程学/性能原因,将数据“附加”到枚举变量是有意义的。

人为的例子:

我有一个语言列表和一个国家列表

在内部,我希望枚举将语言值与国家/地区隐式关联:

  1. 创建“国家”时,我不想提供语言,而只是Country::country_name(没有语言)
  2. 序列化/反序列化时,应隐式添加语言

查看 serde.rs 文档,您可以添加一个字段属性

或者

  1. default并非所有国家/地区都有默认语言 - 而是取决于它所包含的国家/地区变体
  2. path- 在没有国家值的情况下调用该函数,因此效果类似于default

我考虑过的一些选项

  1. 手动实现序列化/反序列化 - 但我有很多情况并且容易出错
  2. 惰性常数值?冗长的
0 投票
0 回答
19 浏览

pandas - Python panda 多索引数据框:如何将特定列与新索引中的特定值相关联

Python panda 多索引数据框:如何将特定列与新索引中的特定值相关联

我在多索引熊猫数据框中有气象数据。为简单起见,让我们将示例限制为不同压力水平下的温度(您可以将其想象为对应于海拔高度)和降水。目前df有3个索引:纬度、经度和时间。温度值按每个压力级别组织为一列。因此 df 看起来像:

idx1 idx2 idx3 降水量(mm) T@1000hPa 温度@900hPa T@800hPa …</th> .. 温度@10hPa 评论
纬度(度) 长(度) 时间(小时)
30 20 0 0.0 25.1 13.7 2.1.. -30.5
30 21 0 0.1 25.0 13.6 1.8 .. -30.3
30 22 0 0.5 24.6 13.2 1.6 .. -30.4
30 23 0 1.2 22.1 13.0 1.9 .. -30.8
30 24 0 1.7 21.9 12.8 2.1.. -30.5
31 20 0 0.9 23.3 13.1 2.2.. -31.2 # 下一个纬度
31 21 0 0.2 23.7 13.1 2.0 .. -30.9
…</td> …</td> …</td> …</td> …</td> …</td> …</td> …</td> …</td>
30 20 1 0.2 24.7 13.8 2.3.. -30.4 # 下一个时间步
30 21 1 0.8 23.6 13.7 2.0 .. -30.9
…</td> …</td> …</td> …</td> …</td> …</td> …</td> …</td> …</td>

我想要实现的是以下几点:

idx1 idx2 idx3 idx4 温度(摄氏度) 评论
纬度(度) 长(度) 时间(小时) 压力等级(hPa)
30.0 20.0 0 1000 25.1
30.0 21.0 0 1000 25.0
30.0 22.0 0 1000 24.6
30.0 23.0 0 1000 22.1
30.0 24.0 0 1000 21.9
31.0 20.0 0 1000 23.3
31.0 21.0 0 1000 23.7
…</td> …</td> …</td> …</td> …</td>
30 20 1 1000 24.7
30 21 1 1000 23.6
…</td> …</td> …</td> …</td> …</td>
39 23 48 1000 26.2
39 24 48 1000 26.0 # 最后一个时间步(48小时)
…</td> …</td> …</td> …</td> …</td>
30.0 20.0 0 900 13.7 启动 900hPa 压力水平
30.0 21.0 0 900 13.6
30.0 22.0 0 900 13.2
30.0 23.0 0 900 13.0
30.0 24.0 0 900 12.8
31.0 20.0 0 900 13.1 下一个纬度
31.0 21.0 0 900 13.1
…</td> …</td> …</td> …</td> …</td>
30 20 1 900 13.8 下一个时间步
30 21 1 900 13.7
…</td> …</td> …</td> …</td> …</td>
39 23 48 900 14.0
39 24 48 900 14.2 # 最后一个时间步(48小时)
…</td> …</td> …</td> …</td> …</td>
30.0 20.0 0 10 -30.5 启动 10hPa 压力水平
30.0 21.0 0 10 - 30.3
…</td> …</td> …</td> …</td> …</td>
39 23 48 10 -32.4
39 24 48 10 -32.9 # 最后一个时间步(48小时)
…</td> …</td> …</td> …</td> …</td>
idx1 idx2 idx3 idx4 降水量(mm) tCloudCover (+许多其他人)
纬度(度) 长(度) 时间(小时) 压力等级(hPa)
30.0 20.0 0 9999 0.0 0.12
30.0 21.0 0 9999 0.1 0.25
…</td> …</td> …</td> …</td> …</td> …</td>
39 23 48 9999 0.2 0.82
39 24 48 9999 0.8 0.84 # 最后一个时间步(48小时)

目前,我可以例如绘制特定压力水平的地理区域的温带,但我无法绘制特定纬度/经度位置的垂直温度曲线,更不用说这种曲线的时间序列了。

如何将所有现有的“T@1000hPa”列值与 1000hPa 的索引、“T@900hPa”列与 900hPa 索引、“T@10hPa”列与 10hPa 索引等相关联?还有其他参数,例如阵风,仅在较低级别可用,但在所有压力级别均不可用。最后,我如何将降水柱(和其他量)与 9999hPa 关联起来(这意味着数据在不同的压力水平下不可用,而只能作为所有水平或地面的总和)?

最初的绊脚石之一是创建索引。尝试将 16 个压力级别作为数据列插入,然后将该数据列转换为索引,但失败并显示:“ValueError:值长度 (16) 与索引长度 (12400) 不匹配”。

我尝试了不同的(繁琐的)方法,但到目前为止还不能让它工作,更不用说以一种优雅的方式了。或者我是否必须创建第二个独立的数据框来实现这一点(说到优雅......)?有没有好主意的人可以抽出2分钟给我一些指示?谢谢!

0 投票
1 回答
63 浏览

swift - 如何声明允许“扁平化”“switch”语句的“enum”的“enum”?

Optional在 Swift 中允许使用魔法 where switch-ing over an optionalenum将案例扁平化为单个 switch 语句。

鉴于:

你可以:

在这里, Optionalis an enumand Foois an enum, 但仅仅一个语句就足以涵盖两者的所有情况。

enum问题:我可以在另一个里面声明我自己的enum,这样案件也可以以平坦的方式处理吗?

这样我就可以:

也许如果我把这个案子Foo.dope称为Foo.some?也许有一个我可以使用的注释?