2016-03-29 10 views
2

オブジェクトのリストから最初のインデックスオブジェクトを取得します。ここにサンプルオブジェクトがあります:指定されたインデックスオブジェクトの取得中にエラーが発生する

[%VendorModel{__meta__: #Ecto.Schema.Metadata<:loaded>, 
    cameras: #Ecto.Association.NotLoaded<association :cameras is not loaded>, 
    config: %{"auth" => %{"basic" => %{"password" => "12345", 
     "username" => "admin"}}, 
    "snapshots" => %{"h264" => "h264/ch1/main/av_stream", 
     "jpg" => "Streaming/Channels/1/picture"}}, exid: "ds-2cd2032-i", id: 332, 
    name: "DS-2CD2032-I", 
    vendor: #Ecto.Association.NotLoaded<association :vendor is not loaded>, 
    vendor_id: 6}, 
%VendorModel{__meta__: #Ecto.Schema.Metadata<:loaded>, 
    cameras: #Ecto.Association.NotLoaded<association :cameras is not loaded>, 
    config: %{"auth" => %{"basic" => %{"password" => "12345", 
     "username" => "admin"}}, 
    "snapshots" => %{"h264" => "h264/ch1/main/av_stream", 
     "jpg" => "Streaming/Channels/1/picture", "mjpg" => "/", 
     "mpeg4" => "mpeg4/ch1/main/av_stream"}}, exid: "ds-2cd2612f-i", id: 2911, 
    name: "DS-2CD2612F-I", 
    vendor: #Ecto.Association.NotLoaded<association :vendor is not loaded>, 
    vendor_id: 6}, 
%VendorModel{__meta__: #Ecto.Schema.Metadata<:loaded>, 
    cameras: #Ecto.Association.NotLoaded<association :cameras is not loaded>, 
    config: %{"auth" => %{"basic" => %{"password" => "mehcam", 
     "username" => "admin"}}, 
    "snapshots" => %{"h264" => "h264/ch1/main/av_stream", 
     "jpg" => "Streaming/Channels/1/picture", "mjpg" => "/", 
     "mpeg4" => "mpeg4/ch1/main/av_stream"}}, exid: "ds-2df5274-a", id: 2913, 
    name: "DS-2DF5274-A", 
    vendor: #Ecto.Association.NotLoaded<association :vendor is not loaded>, 
    vendor_id: 6}] 

指定されたインデックスオブジェクトを取得します。以下のように:

%VendorModel{__meta__: #Ecto.Schema.Metadata<:loaded>, 
    cameras: #Ecto.Association.NotLoaded<association :cameras is not loaded>, 
    config: %{"auth" => %{"basic" => %{"password" => "12345", 
     "username" => "admin"}}, 
    "snapshots" => %{"h264" => "h264/ch1/main/av_stream", 
     "jpg" => "Streaming/Channels/1/picture"}}, exid: "ds-2cd2032-i", id: 332, 
    name: "DS-2CD2032-I", 
    vendor: #Ecto.Association.NotLoaded<association :vendor is not loaded>, 
    vendor_id: 6} 

私はobjects[0]を使用してオブジェクトを取得しようとしていますが、それはエラーメッセージの後与えました。エラー:** (ArgumentError) the Access calls for keywords expect the key to be an atom, got: 0

この問題を解決するのを手伝ってください。

答えて

4

リストから要素を取得するためのオプションがいくつかあります。

あなたが行うことができます最初の項目(インデックス0)したい場合は、次のリストの先頭にあるエントリはitemにバインドされます

[item | _tail] = items 

を。

あなたはまた、パイプラインに役立つことができhd/1機能を使用することができます:あなたは、リストから特定のインデックスをしたい場合は、Enum.at/3を使用することができます

item = hd(items) 

を:

item = Enum.at(items, 5) 
+0

そして、どのように取得しますアイテム数は? – azharmalik3

+0

http://elixir-lang.org/docs/v1.2/elixir/Enum.html#count/1 – Gazler

関連する問題