scala ide是干啥用的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala ide是干啥用的相关的知识,希望对你有一定的参考价值。
参考技术A Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。
Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。
Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
任何方式可以被用作中缀(infix)或后缀(postfix)操作符
闭包按照所期望的类型(目标类型)自动地被构造
Scala可与Java和.NET进行互操作:Scala设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。
对于某些开发者来说,这些刺激已足以引诱他们脱离Java进入Scala世界。但对另外一些开发者来说,它们并没有为Java世界里当前正在演绎的日复一日的编程活动提供更多好处。
在一篇名为“Scala:集Ruby和Java之所长”的博文中,Ian讲述了或许不应在Java和Scala之间做出选择,相反,相对于选择其它语言如Ruby,选择使用Java和Scala的混合物是的另一种选择:
许多开发者热爱Ruby,不过他们不能从中获取足够的东西。它可能是最具侵略性的语言之一,因为Java才是第一个到场的。人们总是引证Ruby的灵活而可扩展的语法、闭包等特性,以及其代码如何简明和具有表现力。
例如,你可以用一个简单语法创建一个Map(Ruby称之为“hashes”,尽管hashtable只是map一种可能的实现方式),如:
numberMap = "one" => 1, "two" => 2, "three" => 3
Java与之对等的语句显得颇为冗长:
Map<String, Integer> numberMap = new HashMap<String, Integer>(); numberMap.put("one", 1); numberMap.put("two", 2); numberMap.put("three", 3);
那么Scala怎么样呢?让我们看看Scala中map的例子:
var numberMap = Map("one" -> 1, "two" -> 2, "three" -> 3)
你会注意到它看上去非常类似等价的Ruby代码,但是这儿有一些重要区别。特别是,就像Java,Scala编译器知道numberMap使用String作为键,Integer作为值。与Java不同的是,你无需告知,它本身就能领会这一点!这称为“类型推理(type inference)”。
这意味着如果你试图给numberMap增加一个新的键值对,但是要使用Integer作为键,String作为值,Scala将在你试图编译它时立刻报错(或者你的IDE将立刻警告你)。使用Ruby,只有当你运行你的软件并试图从该Map中找回该键和值时,得到的分别是Integer和String而不是所期望的String和Integer,这时才会导致报错。
过分强调编译时类型检查节省多少多少时间是困难的,但它消除了所有类在执行时将会产生的bug。Scala给你带来了这一好处,而且代码并不繁琐。
为更进一步在一个小例子中展现代码量的缩减,Ted Neward研究了开发同一个类,用Java、C#、Virual Basic、Ruby和Scala的区别。请参考其博文Scala pt 2:简短。
Ian继续指出:
Scala还有一连串其它好的Ruby特性(Java所缺乏的),包括闭包,以及非常适合“领域特定语言”的可塑性语法。它拥有所有这些特性,而且结合了静态类型好处。
David MacIver在其博文说正经的,为什么选择Scala?中分享了他对于面向对象编程、面向模块编程、静态类型、函数编程以及该语言中他所喜欢的未言明特性的观点。他补充道:
Scala离完美还差得远。它有一些语法缺陷,一些由Java带来的问题,一个有适度问题的编译器以及一堆你记不住的琐碎特性和边界情况(edge case)。然而,我发现这些问题除了烦你之外并不真正产生什么后果。如果只是想坐下来书写好的代码,该语言的核心是强大的和非常有用的。
为了提供一个均衡的观点,David在其博文中接着探讨了为什么不选Scala,文中他阐述了一些边界情况(edge case)。作为总结,David有如下评论:
总而言之,我发现这些只是增加了一些烦心事。它仍是我最喜欢的JVM语言,但是你的看法将取决于你怎样搁置那些对你来说可能是更重要的需要优先考虑的事情。
为了展现Scala是一门不断成熟的语言,Programming in Scala一书很快将会出版。如果等不及,Artima网站上有该书PDF格式的预印版。
rel=profile 是干啥用的?
【中文标题】rel=profile 是干啥用的?【英文标题】:What rel=profile is for?rel=profile 是干什么用的? 【发布时间】:2013-05-14 06:20:45 【问题描述】:在为我的新模板编写 HTML 时,我偶然发现了一个新的元标记
<link rel="profile" href="http://gmpg.org/xfn/11" />
这是干什么用的?我发现它链接到这个page,通过谷歌我找到了这个Microformat,但我没有得到它。
【问题讨论】:
【参考方案1】:在 HTML 4.01 中,profile
attribute 用于 head
元素:
此属性指定一个或多个元数据配置文件的位置,以空格分隔。对于未来的扩展,即使本规范仅认为第一个 URI 很重要,用户代理也应该将值视为一个列表。
用于链接meta data profiles。
在 HTML5 中,profile
属性为 dropped。
作为它的替代方案,可以使用rel
value profile
(在profile
属性上使用several advantages)。 RFC 6906 描述了“profile
链接关系类型”。
此类元数据配置文件的示例格式(无论是profile
属性还是rel
值)是XMDP:XHTML 元数据配置文件。定义在http://gmpg.org/xmdp/:
一种简单的基于 XHTML 的格式,用于定义易于人类和机器读写的 HTML 元数据配置文件
在您的示例中,使用了 XFN 的配置文件,Xhtml Friends Network (archive.org link):
一种使用超链接表示人际关系的简单方法
【讨论】:
可以安全删除吗?它的目的是什么?这些都没有真正告诉我它的目的。 @felwithe:整个答案是关于它的目的:它用于指定元数据配置文件。如果不知道它为什么存在/不知道是否有消费者在使用它,则无法回答是否可以安全地从文档中删除它。 它甚至没有说明元数据配置文件是什么。 我知道这是旧的,但它可能对任何与我现在有类似问题的人仍然有用。当您遇到这种类似行话的链接时,尤其是在 WordPress 中,您可能会感到沮丧,并且您不知道它是什么。查看这篇文章wordpress.stackexchange.com/questions/173117/…我相信它解释得更好。【参考方案2】:与XHTML Friends Network
有关(链接之间的关系)
但是不要在这上面浪费时间。
从 HTML5 草案中删除它是没有用的。我建议不要使用它。
来源:https://***.com/a/1417789/4718434
【讨论】:
以上是关于scala ide是干啥用的的主要内容,如果未能解决你的问题,请参考以下文章