Bir fonksiyonun başlığında bir haritadaki tuşun desen eşlemesinin bir yolunu bulmak mümkün görünmüyor. Bunu yapmanın bir yolu var mı? Ne yapmaya çalışıyorum belli anahtar zaten bir harita var olup olmadığını bağlı olarak farklı kod çalıştırılır (ve ayrıca önlemek istedik/else ve benzeri varsa)Elixir'de işlev kafaları içindeki harita tuşlarında desen eşleştirmesi nasıl yapılır
Bu benim kod
neye benzediği bana bu hata veriyordef my_func(key, %{key => _} = map), do: ...
** (CompileError) harita anahtarı maçın içinde değişken anahtarın yasadışı kullanımı, haritalar sadece^kullanarak değişkeni mevcut üzerine eşleşebilirTabiianahtar
Ben de o zaman
** (CompileError) verir
^
def my_func(key, %{^key => _} = map), do: ...
ilişkisiz değişken^anahtar
kullanıyorum iksir kullanarak denedim 1.3.1/erlang 19.0 x64 bir Windows 8.1 makinede. Okumak için teşekkürler! İhtiyacınız anahtarla
Merhaba, cevabınız için teşekkürler.Ama muhtemelen 'my_func (key, _) 'deki anahtarın çalışma zamanında belirlenen bir değişken olduğunu açıklığa kavuşturmalıyım. – bottlenecked
derleme zamanında bilinmemekte, şimdi ne yapmaya çalıştığınızı kısmen anlıyorum. Tam olarak fonksiyonun ne yapar? –
Um, bu fonksiyon gövdesini eklemek için ilgili olduğunu düşünüyorum yoktu, ama son kod kabaca yapacak "anahtar zaten bir uyarı tetikleyecek varsa, başka foo yapmak ve haritaya eklemek" – bottlenecked