这对Scala和Java都有效,库可以定义为:
在计算机科学中,库是用于开发软件的资源的集合.这些可能包括预先编写的代码和子例程,类,值或类型规范.
这意味着(我知道,我简化了很多)库是一组例程,您将在代码中使用它们来实现算法.它们可以让您一次又一次地编写相同的代码(例如,每次必须将字符串打印到控制台时,您都不需要重新发明轮子).
一个语言的扩展是不是代码,你会打电话给(或使用)直接从您的代码,但东西会改变你写你的程序.它可能会改变(通常也会)语言本身的语法,并且通常是编译器的插件.添加到Java语言的许多功能都是扩展(例如泛型).
例如,Session-Scala是由以下两者组成的扩展:
有关示例,请查看此页面.
也就是说,通常使用Scala语言扩展并不是真正需要的(因为它的语法非常容易编写,例如,比.NET语言更容易编写).我想到的第一件事就是中缀运算符,但总的来说,它所有的方法调用语法都可以很容易地将它用作没有DSL的DSL.