0
考慮下面的例子朱莉婭:傳遞的複合類型的字段作爲參數
struct valueStruct
a::Vector{Float64}
a2::Vector{Float64}
end
values = valueStruct(ones(10), ones(10));
values2 = 1:10;
function testFunc!(values, values2)
values.a .= values.a .* values2;
end
我想創建一個功能testFunc2!
,使得它可以在一個field
而不是整個對象。例如:testFunc2!(values.a, values2)
。但是,我不斷收到此錯誤:
LoadError: LoadError: syntax: "values.a" is not a valid function argument name
。
我想這樣做是因爲在我的實際代碼中,我想遞歸地在結構values
的循環中應用testFunc!
,例如, testFunc!(values.a2, values.a)
。我知道我可以這樣做:
function testFunc!(values, values2, n)
values.a .= values.a .* values2;
for i = 1:n
values.a2 .= values.a;
end
end
但是,這不是我想要的。在我的實際代碼中,我需要有一個靈活的函數,以便我可以將它應用於類型的字段。那可能嗎?