文档章节

Scala--基础入门

_咫尺_
 _咫尺_
发布于 2016/04/04 16:55
字数 786
阅读 85
收藏 3

简介/安装

Scala,是一门运行在JVM上的函数式面向对象语言,可以很好的兼容java。

1、首先安装一下JDK(略)

2、安装scala,官方下载:http://www.scala-lang.org/download/2.11.0.html

3、配置好环境变量(略)

配置好后,打开cmd命令窗口,输入scala就进入了友好的scala的"Repl"界面,如图:

在“Repl”界面我们就可以进行一些简单的计算和操作,每一次都会返回一个结果eg:res0:Int=19(该信息体现了参数的定义,val|var 参数名:参数类型=参数值,该地方省略了val)。所以我们就可以通过参数名res0使用该值。

res0(res1,res2...)  #为返回值名称 Int(Double,String....)  #为返回值类型

变量定义

scala有两种声明变量的方式varvalval类是于Java中的final变量,一旦初始化就不能修改,例如上图中msg4;而var声明的变量就可以多次被赋值,scala建议声明为val。 在声明变量时也可以不指定类型,scala自己会进行类型推断,判断出“Word”为String类型(java.lang.String)。

懒值 ,当val被声明为lazy时。它的初始化将被推迟,直到我们首次使用它,eg:

lazy val words = scala.io.Source.fromFile("/use/word").mkString

变量类型

  1. scala中有7种数值类型ByteCharShortIntLongFloatDoubleBoolean,这类用法和java的基本类型类似。只是scala这些类型是类,它不区分引用类型和基本类型;
  2. 对于字符串它使用的java.lang.String,但scala也有自己的扩展StringOps类;其他类型的一些扩展比如,RichInt、RichDouble、RichChar,还有java.math.BigIng、java.math.BigDecimal等;
  3. 基本类型和包装类新之间的转换,这个scala编译器会自动完成,eg:创建一个Int[]数组,最后在虚拟机中得到的是int[];
  4. 在scala中,数值类型之间的转换不是强制类型转换而是使用方法,eg:toInttoDoubletoChar等

scala脚本

脚本,就是一些简短的命令组合放在一个文件中,运行脚本就是按顺序执行文件中的语句。比如我们把这两行代码写到script.scala文件中:

然后运行:

args(n) , 就可以接受到后面的参数(这个和java很像,java中main方法args[]同样能接收到)(注意:数组java是"[]"而scala中是"()")。

扩展-Intellij使用

这里顺便讲一下使用Intellij IDEA开发scala:

下载安装Intellij IDEA 安装Intellij的scala插件

菜单File--->Settings

输入scala,然后点击右边的install plugin

安装好插件后重启就可以新建项目了,File--->New--->Project,选择scala:

输入项目名,选择项目地址和JDK和scala的SDK,Finish

右键创建一个scala class,我们这里选择为Object

写一个简单的例子,测试一下,okay!

本文转载自:http://blog.xiaoxiaomo.com/2016/03/25/Scala-%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/

_咫尺_
粉丝 24
博文 11
码字总数 5503
作品 0
朝阳
程序员
私信 提问
加载中

评论(2)

_咫尺_
_咫尺_ 博主

引用来自“china-wlf”的评论

写的非常好,对我帮助很大
谢谢你的支持,我现在http://blog.xiaoxiaomo.com写博客,这个是我转过来想拉拉人气的
c
china-wlf
写的非常好,对我帮助很大
分享两套Spark大数据视频教程

第一套: 课程目录: Scala基础与实践(上) Scala基础与实践(中) Scala基础与实践(下) Spark概述与编程模型(上) Spark概述与编程模型(下) 深入Spark内核(上) 深入Spark内核(下) Spark Streami...

查看地址
2014/11/17
52
3
Scala编程语言视频教程|Scala视频教程

Scala编程语言视频教程 分享网盘下载——https://pan.baidu.com/s/1kUFL6Ub 密码: m7k4 Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于...

nitycka
2017/11/01
0
0
大数据实验室(大数据基础培训)——基础概念

为某企业做的培训,完整文档见:http://gudaoxuri.github.io/bd-lab/ 3. 大数据总揽 见 4. Spark入门 见 5. Scala入门 https://learnxinyminutes.com/docs/scala/ — learnxinyminutes.com......

孤岛旭日
2016/05/06
23
0
12月初值得一读的10本技术新书(分布式架构、自然语言、程序员成长等)!文末有福利!

12月1日,阿里云云栖社区机构号 联合IT图书专业出版社 博文视点 为大家带来十本技术新书(分布式架构、自然语言、程序员成长等)。以下为书籍详情,文末还有福利哦! 书籍名称:《OpenCV算法...

阿里云云栖社区
2017/12/01
0
0
Apache Flink实战(一) - 简介

1 功能 2 用户 国际 国内 3 特点 ◆ 结合Java、Scala两种语言 ◆ 从基础到实战 ◆ 系统学习Flink的核心知识 ◆ 快速完成从入门到上手企业开发的能力提升 4 安排 ◆ 初识Flink ◆ 编程模型及核...

javaedge
04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
575
15
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
19
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
12
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部