1
嵌套列表與結構我有一個結構get_in在靈藥
s = [
a: %Bla{
b: "c"
}
]
我想從它採取c
值。我正在嘗試做
get_in(s, [:a, :b])
但它的目的不是爲了從結構中獲取價值。有沒有什麼模擬可以讓我從嵌套結構的列表中獲取c
?
嵌套列表與結構我有一個結構get_in在靈藥
s = [
a: %Bla{
b: "c"
}
]
我想從它採取c
值。我正在嘗試做
get_in(s, [:a, :b])
但它的目的不是爲了從結構中獲取價值。有沒有什麼模擬可以讓我從嵌套結構的列表中獲取c
?
由於documented,get_in
默認情況下不與結構的工作:
的Access語法(富[巴])不能被用來在結構接入領域,由於結構不實現默認訪問行爲。這也是設計決策:動態訪問查找用於動態鍵值結構,如地圖和關鍵字,而不是像結構體那樣的靜態鍵值結構。
有兩種方法可以實現你想要什麼:
實現Access
協議的結構。使用Access.key(:foo)
代替:foo
。
我會使用(2):
iex(1)> defmodule Bla do
...(1)> defstruct [:b]
...(1)> end
iex(2)> s = [a: %Bla{b: "c"}]
[a: %Bla{b: "c"}]
iex(3)> get_in(s, [:a, Access.key(:b)])
"c"
'get_in(S,[:一,:B])#=> 「C」'我。 – Dogbert
廢話!讓我調查爲什麼它不能在我身邊 – asiniy
@Dogbert更新了這個問題。結構很重要! – asiniy