图书馆与语言扩展有什么区别?具体在斯卡拉。图书馆与语言扩展
图书馆与语言扩展
回答
这是有效无论是Scala和Java来说,一个库可以定义为:
在计算机科学中,库是用于开发软件资源的集合。这些可能包括预先编写的代码和子例程,类,值或类型规范。
这意味着(我知道,我简化了不少)一库是你在代码中使用,以实现一个算法程序的集合。它们可以节省您一次又一次编写相同的代码(例如,每次必须将字符串打印到控制台时,您都不需要重新发明轮子)。
一个语言扩展是不是代码,你会打电话给(或使用)直接从您的代码,但东西会改变你如何编写你的程序。它可能会改变(通常是)语言本身的语法,并且通常它是编译器的插件。添加到Java语言中的许多功能都是扩展功能(例如泛型)。
例如会话Scala是由双方的扩展:
- 库管理并行编程(代码,你可以直接从你的代码中调用)。
- 语言扩展:为了让你编写的代码更加清晰(有时称为语法糖),它改变了语言的语法,使其库函数的使用更加容易(我应该说不错?)
举例来看看this page。
这就是说,通常在Scala中,由于语法的原因,扩展语言并不是真的需要(即使它很容易编写,比.NET语言更容易)。我想到的第一件事情是infix操作符,但总的来说,它的方法调用的所有语法都可以简单地将它用作没有DSL的DSL。
如果通过语言扩展来表示一个编译器插件,那么它可以在编译时检查或转换给定的源代码为其他普通的Scala代码。但是,使用相同原始源代码的其他人也必须安装编译器插件来编译代码。
另一方面,在斯卡拉的库可能看起来像一个语言扩展感谢斯卡拉的支持infix notation/suffix notation和symbolic methods。然而,在编译时没有什么特别的,尽管任何人编译然后运行相同的源代码都需要任何引用的库来完成。
This is the Scala language specification。如果可以用本规范描述的语言编写它,那么它是一个库。如果您对本文档描述的语言进行更改,不能用语言本身编写,那么它是一种语言扩展。
+1喜欢它,不能更简洁! –
- 1. 可扩展的课程和图书馆
- 2. 图书馆与图书馆项目与外部图书馆的区别
- 3. 图书馆与fftwf_plan_dft_r2c_1d?
- 4. 扩展C#语言?
- 5. C++语言扩展
- 6. PHP扩展与C语言编写的
- 7. 图书馆对图书馆的引用
- 8. 味道与图书馆?
- 9. 图书馆间接与dlsym
- 10. VS扩展架构(包API/Visual Studio中图书馆)
- 11. HybriAuth - Hybriauth图书馆所需要的JSON PHP扩展
- 12. Ruby Squeel图书馆对核心扩展的弃用
- 13. 扩展图书馆中层次结构中的超类 -
- 14. 不同语言的图书馆执行情况?
- 15. 语言环境不更新我的图书馆为Android应用
- 16. 使一个图书馆在GO中可用于其他语言
- 17. 如何Rivr Java的VoiceXML的图书馆指定addPrompt()语言
- 18. 扩展表达式语言
- 19. 多语言Safari扩展
- 20. VSCode的Python语言扩展
- 21. SyntaxHighlighter图书馆
- 22. SimpleHTMLDom图书馆
- 23. AndroidPdfViewer图书馆
- 24. 从图书馆
- 25. VS2005图书馆
- 26. 图书馆
- 27. 什么是扩展语言?例如:python可以用作扩展语言
- 28. 图书馆目录搜索sql语句
- 29. 图书馆与谷歌图表互动
- 30. 扩展Simple.Data与断言
你的意思是说什么*语言扩展*? –