Saya memiliki vektor dua elemen yang elemennya hanya boleh 0 atau 1. Untuk contoh ini, misalkan x = [0, 1]
. Misalkan juga ada empat objek y00, y01, y10, y11
. Tujuan saya adalah memperbarui y
yang sesuai (y01
dalam contoh ini) sesuai dengan nilai x
saat ini.
Saya sadar saya dapat melakukan ini menggunakan serangkaian pernyataan if
:
if x == [0, 0]
y00 += 1
elseif x == [0, 1]
y01 += 1
elseif x == [1, 0]
y10 += 1
elseif x == [1, 1]
y11 += 1
end
Namun, saya memahami hal ini dapat dilakukan dengan lebih ringkas menggunakan metaprogramming Julia, meskipun Saya tidak terbiasa dengan penggunaannya dan tidak tahu caranya. Saya ingin dapat mengungkapkan sesuatu seperti y{x[1]}{x[2]} += 1
(yang jelas-jelas salah); pada dasarnya, dapat merujuk dan memodifikasi y
yang benar sesuai dengan nilai x
saat ini. Sejauh ini, saya sudah bisa memanggil nilai sebenarnya dari y
yang benar (tapi saya tidak bisa memanggil objek y
itu sendiri) dengan sesuatu seperti
eval(Symbol(string("y", x[1], x[2])))
Saya minta maaf jika saya tidak menggunakan istilah yang tepat, tapi saya harap saya sudah menjelaskannya dengan jelas.
(i,j)
daripada vektor[i,j]
- person François Févotte   schedule 05.01.2020