我正在使用 Cro 框架在 Perl 6 中创建一个 API 服务器!此 API 的目的是提供有关 Pokemon 的数据,并提供端点以根据输入数据生成 Pokemon。生成的因素之一是gender
,在我的 PostgreSQL 数据库中,每个参考 Pokemon 都有一个gender-ratio
包含 JSON 值的列,如下所示:
"gender-ratio": {
"default": {
"Male": 0.25,
"Female": 0.75
},
"alolan": {
"Male": 0.25,
"Female": 0.75
}
},
你会注意到我有两个键叫做default
and alolan
,这是因为口袋妖怪可以有多种形式,但它与这个问题几乎无关——相关的是实际的性别比例值。这是我的生成方法目前的样子:
method select-gender($pokemon, $form = 'default') {
enum GENDER ( <Male Female> );
return GENDER.pick;
}
默认情况下pick
是随机的,在本例中为 50/50。但是,我希望能够根据从数据库返回的比率结果来衡量每个选项的随机性。我的一个想法是GENDER
使用数据库查询的结果为枚举播种,因此对于特定示例,它看起来更像这样:
enum GENDER ( <Male Female Female Female> );
pick
除非其他人对根据我的SELECT
陈述结果动态改变的行为有更好的想法?