小编Chi*_*ean的帖子

Elixir - 将列表转换为地图

将列表[1,2,3,4]转换为地图 的优雅,高效的方法是%{1=>2, 3=>4}什么?我写了这个:

     Enum.reduce([1,2,3,4],%{}, fn(item, acc) ->
        case Map.get(acc, :last) do
          nil ->
            Map.put(acc, :last, item)
          last ->
            acc = Map.put(acc, item, last)
            Map.drop(acc, [:last])
        end
      end)
Run Code Online (Sandbox Code Playgroud)

但这似乎并不优雅.这样做有更优雅,更清洁的方式吗?

elixir

10
推荐指数
4
解决办法
1万
查看次数

阵列模型数据类型的Phoenix Form字段

我正在使用惊人的Phoenix Web Framework并试图找出如何为具有数组字段的模型创建表单字段.

以下是模型中的示例字段: field :grateful, {:array, :string}

我已经尝试生成这样的字段:

<%= inputs_for f, :grateful, fn fp -> %> <%= text_input fp, :grateful %> <% end %>

但我得到了这个错误:无法生成输入:感激来自Motivation.DailyPost.检查该字段是否存在,它是embeds_one,embeds_many,has_one,has_many,belongs_to或many_to_many之一

如果我生成这样的字段:<%= text_input fp, :grateful %>它生成一个名称为的表单字段:daily_post[grateful]实际上不起作用.我需要daily_post[grateful][].

下面的代码有效,但保存后加载数据不起作用.所有数组值都合并到一个输入字段中.

<div class="form-group" id="grateful-group"> <%= label f, :grateful, class: "control-label" %> <%= text_input f, :grateful, name: "daily_post[grateful][]" %> <%= error_tag f, :grateful %> <input type="button" class="btn btn-success" id="add-grateful" value="add" /> <script> window.onload = () => { $('#add-grateful').click((e) => { $('<input type="text" name="daily_post[grateful][]" />').appendTo("#grateful-group"); …

elixir phoenix-framework

7
推荐指数
1
解决办法
1567
查看次数

如何在Elixir中加入枚举的字符列表

我正在写一个将RNA转换为DNA的函数。输入以字符列表形式出现:'ATCG'因此我遍历每个字母并使用映射来获取转换后的字母。简单。

问题是枚举字符列表后,我无法将其合并回字符列表。Enum.join返回一个字符串,to_charlist只返回一个字符点列表,我看不到其他任何可以帮助的函数。

这是我的代码:

def to_rna(dna) do
  dna_to_rna = %{
   'G' => 'C',
   'C' => 'G',
   'T' => 'A',
   'A' => 'U'
  }
  Enum.map(dna, fn(letter) ->
    Map.get(dna_to_rna, [letter])
  end)    
end
Run Code Online (Sandbox Code Playgroud)

这将输出一个字符列表: ['U', 'G', 'C']。如何将此列表转换为字符列表:'UGC'

elixir

1
推荐指数
2
解决办法
776
查看次数

标签 统计

elixir ×3

phoenix-framework ×1