问题标签 [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.
cakephp - Cakephp4,如何在实体对象中加载关联数据?
我有一个用户表和一个角色表。一个用户只有一个角色。所以在 UsersTable.php 中:
现在在 User.php (Entity!!) 我需要用户角色的角色名称。但我只有没有关联数据的用户实体。我现在有:
这行得通,但 TableRegistry 在 cake4 中被标记为过时,我找不到任何其他方式来使这项工作。这样做的正确方法是什么?
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
swift - Swift - 嵌套枚举 - 如何对所有具有关联值的嵌套枚举执行相同的操作?
我想打印嵌套枚举的原始值。例如,如果我有一个包含多个案例的顶级食品枚举(为简单起见,我们只说两个:水果,蔬菜),每个都是字符串枚举(水果:字符串,蔬菜:字符串等),有没有办法打印内部关联值而不在顶级枚举中执行 switch 语句?
我当前的代码如下。如您所见,我添加到 Food 的案例越多,var description 中的冗余代码就越多。我想为所有打印内部枚举的 rawValue 的情况编写一个动作。
没有开关可以吗?
ios - 使用 Enums 的关联值将 case 从第一个 Enum 链接到第二个,然后从 CaseIterable 第二个调用关联的函数值
我正在构建一个天气应用程序,该应用程序将提供对多个天气提供者的访问,从这些提供者中返回的数据集略有不同。我想让处理数据设置的系统尽可能通用,以加速新提供者的添加。
首先,我有一个枚举RValueUnits
,其中包含可以返回值的所有可能单位:
例如,一些提供商可能会以 .mm 为单位返回降水量,而另一些则以 .cm 为单位。
我想要的是每个提供者都有一个自己的枚举,列出他们返回的所有属性,包括返回类型。例如:
与每个案例关联的 setter 函数处理属性的数据设置。例如,它将提供程序的返回值类型与用户的偏好进行比较,如果不同,它将在将其设置为关联属性的值之前对其进行更改,例如apparentTemperature
在上述情况下。
我有一个问题和一个问题:
首先,我希望 DarkSkyProps 是 CaseIterable,所以设置是自动的。但是,我不知道如何调用迭代案例的关联 setter 函数:
其次,理想情况下,我还希望有枚举 ForecastSource,例如:
并且每个都与 Props 枚举相关联(即 ForecastSource.DarkSky 链接到 DarkSkyProps),例如:
因此,我只需要编写类似的内容,例如:
有办法吗?
最后,考虑到我的目标,是否有更合适的完全不同的方法?
非常感谢!
rust - 将关联的非可变常量数据分配给枚举变量
注意:我的问题与此问题类似,但似乎无法解决我的用例。 枚举变体可以具有恒定的关联值吗?
问题说明
我的服务器返回一个内部映射到枚举的国家(很长的列表)(有一组提前知道的有效可能性)。
我需要一些与国家相关的数据(例如语言)。
相关数据是“恒定的”,并且出于人体工程学/性能原因,将数据“附加”到枚举变量是有意义的。
人为的例子:
我有一个语言列表和一个国家列表
在内部,我希望枚举将语言值与国家/地区隐式关联:
- 创建“国家”时,我不想提供语言,而只是
Country::country_name
(没有语言) - 序列化/反序列化时,应隐式添加语言
查看 serde.rs 文档,您可以添加一个字段属性
或者
但
default
并非所有国家/地区都有默认语言 - 而是取决于它所包含的国家/地区变体path
- 在没有国家值的情况下调用该函数,因此效果类似于default
我考虑过的一些选项
- 手动实现序列化/反序列化 - 但我有很多情况并且容易出错
- 惰性常数值?冗长的
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分钟给我一些指示?谢谢!
swift - 如何声明允许“扁平化”“switch”语句的“enum”的“enum”?
Optional
在 Swift 中允许使用魔法 where switch
-ing over an optionalenum
将案例扁平化为单个 switch 语句。
鉴于:
你可以:
在这里, Optional
is an enum
and Foo
is an enum
, 但仅仅一个语句就足以涵盖两者的所有情况。
enum
问题:我可以在另一个里面声明我自己的enum
,这样案件也可以以平坦的方式处理吗?
这样我就可以:
也许如果我把这个案子Foo.dope
称为Foo.some
?也许有一个我可以使用的注释?