Context
有方法literal(Int)
,literal(String)
等。我如何創建給定名稱的文字符號(即'name
)?有一個明顯的解決方法:創建Symbol.apply(literal(name))
,但我希望應該有一個直接的方法。在宏中創建文字符號
1
A
回答
1
是q"'sym"
太明顯了嗎?
c.Expr[Any](q"'mysym")
明顯,我的意思是,對不起,如果這顯然不是你的意思。
少方便,
c.Expr[Any](c.parse("'asym"))
c.Expr[Any](c.parse(s"'$name"))
也許痛苦,
c.Expr[Any](Apply(c.typeOf[scala.Symbol].typeSymbol, c.literal("mysym").tree))
1
在即將realeased 2.11你就可以只所享有符號成quasiquote得到毫不費力正確的樹:
val s: scala.Symbol = 'foo
q"$s" // q"'foo"
這應該工作在2.10與macro paradise plugin以及。
相關問題
- 1. 等號在Apache PDF Box中創建字符PDF創建
- 2. 宏創建宏?
- 3. 如何爲R中的圖創建符號文本字符串
- 4. 在swift中創建參數化的字符串或宏?
- 5. 創建的字符串或符號鍵
- 6. 在html中創建字符文本框
- 7. 在intellij中創建宏
- 8. 單引號值來創建宏變量
- 9. 如何從字符串中創建關鍵字符號?
- 10. 數據描述符用文字符號(對象創建)
- 11. 解析宏中的符號
- 12. &符號在一個C宏
- 13. Clojure:創建一個宏來引用地圖的每個符號
- 14. 如何從C宏的值中創建一個字符串?
- 15. 在MATLAB中創建符號矩陣R2009b
- 16. 在乳膠中創建符號列表
- 17. 如何在XAML中創建度符號
- 18. 在Swing中創建符號調色板
- 19. 創建一個索引號字符串
- 20. 創建轉換字符串可空號
- 21. 在AHK上創建文本宏系統
- 22. 在VBA宏中使用符號#(散列)
- 23. iOS創建宏
- 24. 創建Excel宏
- 25. 創建文件夾的符號鏈接
- 26. 在cmake中創建宏腳本並在源文件中調用該宏
- 27. 在字符文字中轉義撇號
- 28. RAND_MAX宏:有符號還是無符號?
- 29. 創建後創建的符號鏈接
- 30. 在printf中使用數字符號的宏
它應該是,但事實並非如此。除了name是一個變量,所以'q「'$ name」'。但是,如果不使用宏觀天堂,它看起來如何? –
@AlexeyRomanov我認爲已編輯。從QQ回來真的很難。 –