Ben scala makroları için yeniyim ve ilk günümü yazmaya çalışıyorum birkaç gün geçirdim. Şimdiye kadar quasiquotes birleştirme ile ilgili bir sorunum var. vaka maddelerinin bir listesi vardırScala quasiquote birleştirme
, en aşağıdaki diyelim:
val cases = cq"x => 1 " :: cq"_ => 0 " :: Nil
Ve ondan bir kısmi fonksiyonu inşa etmek gerekir. Sorun şu ki, bunları final quizquote'a nasıl yapıştıracağım konusunda bir fikrim yok. dokümantasyon böyle bir şey yapması gerektiğini söyledi:
q"{ case ..$cases }"
ama bunu eğer çalışmaz.
Böyle bir listeden bir Kısmi İşlev oluşturmanın bir yolu var mı?
Yardımlarınız için teşekkür ederiz. 2.11.2 benim için
Bunun doğru bir yaklaşım olduğuna inanıyorum. Tam olarak hangi hatanın var? – Odomontois
Ayrıca sizin deseniniz biraz garip 'x => 1' herhangi bir ifadeye ait matematiktir, eğer' x' adlı bir yerel değere atıf yapıyorsanız, '' '' '' '' '' '' '' 1 '' kullanmalısınız, patern – Odomontois
Hata aşağıdaki gibidir: : makro genişletme sırasında istisna: java.lang.IllegalArgumentException: scala.collection.immutable.List (case (x @ _) => 1, case _ => 0) desen eşleşme örneğinin geçerli temsilidir. –