好程序员大数据学习路线分享Scala系列之基础篇了解ScalaScala 是 Scalable Language 的简写,是一门多范式的编程语言。Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。函数式编程两种理念:就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。函数式编程的一个特点就是,函数也是值,同允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Scala 是面向对象的Scala是一个纯面向对象的语言,所有的值都是对象,类和对象行为用类和特质来描述.Scala 是函数式的Scala中函数是高等公民,所有函数都是值.Scala是静态类型的
Scala 是可扩展的1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。3.能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。
因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK下载Scala然后解压Scala到指定目录tar -zxvf scala-2.10.6.tgz -C /usr/java配置环境变量,将scala加入到PATH中vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发 香港云主机工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可。由于IDEA的Scala插件更优秀,大多数Scala程序员都选择IDEA,可以到下载社区免费版,点击下一步安装即可,安装时如果有网络可以选择在线安装Scala插件。这里我们使用离线安装Scala插件:1.安装IDEA,点击下一步即可。由于我们离线安装插件,所以点击Skip All and Set Defaul2.下载IEDA的scala插件3.安装Scala插件:File -> settings -> Plugins -> Install plugin from disk -> 选择Scala插件 -> OK -> 重启IDEA使用var 声明一个变量。scala语言是强类型语言。var修饰的变量,内容和引用都可变使用val声明一个常量或值val修饰的变量是不可变的,注意不可变的不是内容,而是引用;val修饰的变量,相当于Java中final修饰的变量;只有val修饰的变量才能被lazy修饰;使用lazy定义变量后,只有在调用该变量时才会实例化这个变量的值。而且惰性变量只能是不可变变量;//变量定义方式
vara:int= 1
varaa = 1
valaaa:Int = 3
valaaaa = 4
lazyvalaaaaa = 4官方推荐使用val。2.val和var区别示意:可以使用数组,更容易懂classA(n: Int) {
varvalue = n
}
classB(n: Int) {
valvalue =newA(n)
}
objectTest {
defmain(args: Array[String]) {
valx =newB(5)
x =newB(6)//错误?
x.value=newA(6)//错误?
x.value.value= 6//正常
}
}3.lazy类似方法,先声明,后调用
4.val or var在val和var均可的条件下,官方推荐使用valScala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float、Double和一个Boolean类型,和Java不同的是 ,Scala没有基本类型与包装类型之分,这些类型都是类,有自己的属性和方法。相当于Java的包装类;1.toString()1.to (10)scala类型层级关系:scala中所有的值都有类型,包括数值和函数.
scala 类型转换:
valx: Long = 987654321
valy: Float = x // 9.8765434E8 (note that some precision is lost in this case)
valface: Char = ‘☺’
valnumber: Int = face // 9786Scala中没有操作符,只是以操作符的格式去进行方法调用。//数学运算符
+、–、*、/、%
//关系操作符
> = //逻辑操作符
&& ||
//位操作符
| & ^ ~
//比较对象是否相等
==!=注意:a + b 等价于 a.+(b)Scala没有++,– 可以用+=,-=代替操作符都是方法的重载,是方法的调用
这篇文章将为大家详细讲解有关win7系统安装显卡驱动后蓝屏怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、首先需要重启计算机,直接按住F8直到出现“高级启动”菜单,并选择“安全模式”进入“安全模式”桌面。2、然后在桌…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。