首先是安装Scala

下载Scala进行安装

  • http://www.scala-lang.org/

安装好scala后,为scala配置系统环境参数

新建环境变量SCALA_HOME,值为scala安装路径bin目录

设置path变量,找到系统变量中的path,添加以下code:%scala_Home%\bin;%scala_Home%\jre\bin;

设置classpath变量:找到找到系统变量下的“classpath”如图,单击编辑,如没有,则单击“新建”,

“变量名”:ClassPath

“变量值”:.;%scala_Home%\bin;%scala_Home%\lib\dt.jar;%scala_Home%\lib\tools.jar.; 

检查环境变量是否设置好了:调出“cmd”检查。单击 【开始】,在输入框中输入cmd,然后“回车”,输入 scala,然后回车,如环境变量设置ok,你应该能看到这些信息。

让我们尝试下scala基本的语法,先来一个hello world。

声明一个Int型常量

val表示声明常量,如果要变量,需要使用var进行声明

创建一个数组

其实这里是调用了 int 对象1的to函数,入参是10,也可以写为:1.to(10).得到的是一个rang对象,可以当做数组

声明一个abs函数,并进行调用

scala的函数声明,入参类型是:Double进行声明的。Scala中每个表达式都是有值的,if else表达式的值,就是其中最后行表达式的值。如果只有if 没有else,那么在if没有进去时,值为Unit类,写为()。

对于递归函数,需要显示的声明函数的返回值类型

{}块是一系列的表达式,块最后一个表达式的值就是块的值,这对那些复杂的初始化过程,很有用,比如:

在Scala中,赋值语句的值是Unit类,所以诸如a=b=1的语句,并不会得到预期的结果

对于scala来说,如果要使用长语句,那么第一行以一个不能用作语句结尾的符号结尾,一个比较好的选择就是操作符:
a+

b

或者使用块

在循环上,Scala有while和do while,使用方法与C#一致

但一般都使用for

for没有初始化变量,检查变量是否满足条件以及对应更新变量,其更希望被用于循环使用集合里的对象。

for可以使用变量<-表达式的形式提供多个生成器,使用;进行隔离即可:

可以使用任意多的变量:

每个生成器可以使用一个守卫,只取自己希望的值:

for还有个搭配,是和yield开始,那么可以构造出一个集合,每次迭代会生成其中一个值。这个类似c#中的select,但是讲实话,远没有select好用,放在最前面,套用层数多了,自己都分不清了:

还有一类入参,是变长参数,类型是seq:

如果sum函数被调用时传入时是单个参数,那么必须是单个整数,而不是诸如以下的区间:

如果希望是1到10区间,需要显式的告知编译器,将这个参数当做参数序处理,在最后追加:_*

懒值,即是在第一次调用时才初始化:

接着是为intellij安装scala插件

从plugin中选择Scala进行安装

pis:如果需要本地下载,请注意IDE支持的版本号,此处版本号为 v2016.2.1,那么需要在Scala插件网站下对应版本

选择采用Scala

选择使用的JDK以及Scala类库

编写一个hello world结束吧

参考:
http://jingyan.baidu.com/article/73c3ce280d1af2e50343d98e.html

http://www.mamicode.com/info-detail-1192175.html

Scala学习笔记一的更多相关文章

  1. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  2. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  3. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  4. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  5. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  6. 原创:Scala学习笔记(不断更新)

    Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面. 1. 以递归为核心控制结构. 实现循环处理的方式有三种:goto,for/w ...

  7. scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类

    一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...

  8. scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步

    继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...

  9. scala学习笔记

    一 入门 为了增加编程趣味和技能,学习新语言,体会函数式编程和简易的并发管理模型,了解日渐活跃的Spark,尝试下Scala.Scala = Scalable language,作者是Martin O ...

  10. Scala学习笔记1(安装)

    到 官网下载scala tar包  http://www.scala-lang.org/download/ mac Finder里双击解压. 改名成scala 进命令行, mv ~/Downloads ...

随机推荐

  1. 第三次作业:caculator

    第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...

  2. XidianOJ 1020 ACMer去刷题吧

    题目描述 刷题是每个ACMer必由之路,已知某oj上有n个题目,第i个题目小X能做对的概率为Pi(0<=Pi<=1,1<=i<=n) 求小X至少做对k道题的概率 输入 第一行输 ...

  3. matlab 按照某列以行为单位进行排序

    a=[2 1 3 21 44 3] 然后按照第一列进行排序 sortrows(a,1) ans = 1 4 2 1 3 2 4 3 如要逆序,可以逆序读矩阵即可

  4. ios UINaviBar 去除分割线

    //For a custom shadow image to be shown, custom background image must also be set with the setBackgr ...

  5. Modelica学习

    Annotation Choices for Suggested Redeclarations and Modifications Replaceable model sample(start,int ...

  6. xpath爬取网页评论,网址的的调用方法,数据库特殊字符的替换

    # -*- coding:utf-8-*-from lxml import etreeimport urllibimport jsonimport requestsimport MySQLdbid=0 ...

  7. Excel表格解析

    //add by yangwenpei WGCW-144 使用Excel表格导入纸票记录 20161212 start /** * @param fileInputStream * @param co ...

  8. JSTL标准标签库 (使用foreach打印集合)

    <%@page import="java.util.*"%><%@ page language= "java" contentType=&qu ...

  9. Ubuntu如何更新源

    Ubuntu的源其实就是更新各种软件包需要用到镜像网站, 当大家在虚拟机上安装Linux镜像的时候肯定会遇到各种Linux软件没有安装,当你用apt-get安装的时候它会提示无效的网址,这个时候你就需 ...

  10. C++STL学习笔记_(1)vector知识

    #include<iostream> using namespace std; #include "vector" //数组元素的 添加和删除 void main31( ...