1.环境搭建

  1.下载安装jdk1.7以上版本,并进行环境变量的配置

  2.下载scala-2.10.4.msi,安装后进行环境变量的配置

  3.下载scala-SDK-4.1.1-vfinal-2.11-win32.win32.x86.zip,解压双击运行

2.scala基础

  1.println  控制台输出   readLine  控制台输入

  2.方法的定义:

    def 方法名 (参数名:参数类型):返回值类型={

      方法体

    }

    注意:

      1.如果没有返回值,可以省略

      2.方法调用 方法名(参数)  ,如果没有参数,可以省略()

      3.方法的最后一行通常作为函数的返回值

  3.for循环语句:

    for(变量名 <- 集合名){操作}

  4.集合操作

    1.Tuple 创建(元素1,元素2,元素3)   角标从1开始

    2.Array  创建 Array(元素1,元素2)

    3.Map  创建  Map(键 -> 值,键->值)

  5.文件操作

    val file=Source.fromFile("F:\\工作\\项目\\china_life.sql")
        val file2=Source.fromURL("http://www.baidu.com")
       for(line <- file2.getLines()) println(line)

3.控制结构

  1.scala并没有提供break或continue语句来退出循环,当需要使用break时可以使用以下三种方式:

    1.使用boolean来控制循环

    2.使用嵌套信息,在从函数中使用return

    3.使用Breaks对象的break方法

      import scala.util.control.Breaks._

      for(i<-1 to 10){
            for(j<-10 to 20)
              println(i,j)
              if (i==5) break
        }

  2.高级for循环  for(i<-1 to 3 if i !=2;j<-1 to 3 if i!=j) println(i,j)       //(1,2),(1,3),(3,1),(3,2)

   for推导式  var a=for(i <- 1 to 10) yield i%2    //Vector(1, 0, 1, 0, 1, 0, 1, 0, 1, 0)

  3.函数定义时必须给出所有参数的数据类型,但是只要不是递归调用,就不需要指出返回类型

    def fac(n:Int): Int = if(n<=0) 1 else n*fac(n-1)

    1.默认参数和带名参数:

      def decorate(str:String,left:String="[",right:String="]")=left+str+right
          println(decorate("tom"))   //[tom]
          println(decorate("tom", "<<"))   //<<tom]
          println(decorate(right="<", str="tom"))   //[tom<

    2.可变参数:

      def sum(nums:Int*)={
            var result=0
            for(num <-nums) result+=num
            result
        }

     此时参数不能为一个集合类型,如果想把集合中的元素供该方法使用可以使用 【集合:_*】 的方式进行传入

     sum(1 to 10:_*)    //55

   3.过程:不返回值的函数的特殊表示法,函数体包含在花括号中间,但没有前面的=,返回值类型就是Unit

      def box(s:String){
            var border = "-"*s.length+"--\n"
            print(border+"|"+s+"|\n"+border)
         }

   4.懒值:在变量前添加lazy修饰符,将延迟变量内容的加载,直到变量被首次访问时才被加载

    lazy val file=Source.fromFile("F:\\工作\\项目\\china_life.sql")  //即使所指定的文件不存在,只要不使用变量file,程序就不会报错,但如果去掉lazy,就会立即报错

01scala环境搭建和基础的更多相关文章

  1. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

  2. 【入门教程】kafka环境搭建以及基础教程

    问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有 ...

  3. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

  4. Dubbo源码学习--环境搭建及基础准备(ServiceLoader、ExtensionLoader)

    环境搭建 Github上下载Dubbo最新发布版本,楼主下载版本为2.5.7. cd到源码解压目录,maven编译,命令为: mvn clean install -Dmaven.test.skip 生 ...

  5. Android 环境搭建、基础窗口window/Mac

    1.五步搞定Android开发环境部署--非常详细的Android开发环境搭建教程 2.Android开发学习之路--MAC下Android Studio开发环境搭建 4.Android常用开发工具以 ...

  6. python3之环境搭建以及基础语法

    早些时候,有一段时间吧,为了想免费下载网易云的收费音乐,也是翻了下python的教程的,语法方面没细致地去看,跟java.php.javascript这些都大同小异,也是面向对象的.那么,近期准备快速 ...

  7. Linux环境搭建及基础操作

    一.Linux环境搭建 1.安装虚拟机软件(VMWare,Parallel) 虚拟机的作用:将本来不是适合当前操作系统的分区虚拟化成适合当前操作系统的分区格式 2.新建虚拟机: 类似买了一台新的电脑, ...

  8. Python基础入门(1)- Python环境搭建与基础语法

    Python编程环境搭建 Python环境搭建 官网下载:https://www.python.org/ python --version PyCharm下载安装 安装 官网下载:https://ww ...

  9. Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo

    前言   使用C#开发动画,绘图性能跟不上,更换方案使用Qt开发Qt的控件制作成OCX以供C#调用,而activex则是ocx的更高级形式.  QtCreator是没有Active控件项目的,所有需要 ...

随机推荐

  1. 系统配置SQL profile

    select M.RESPONSIBILITY_NAME, B.PROFILE_OPTION_NAME, X.USER_PROFILE_OPTION_NAME, t.profile_option_va ...

  2. 《zw版·Halcon-delphi系列原创教程》halconxlib控件列表

    <zw版·Halcon-delphi系列原创教程>halconxlib控件列表 Halcon v11.01版,com控件,安装后,共有75个控件,      不过最重要的控件,只有两个,T ...

  3. MyEcplise中关于部署文件不成功的问题

    MyEclipse 点击 部署 按钮 无效   正常情况下,当我们点击MyEclipse任务栏上的部署按钮时,会弹出项目部署框,如下图:     但我们有时也会遇到点击部署按钮怎么也弹不出项目部署框的 ...

  4. Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性

    Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...

  5. Java中的BufferedReader 的readLine方法

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java ...

  6. linux man

    man能够为除命令之外的配置文件.系统调用.库调用等都能提供帮助手册,他们分别位于不同的章节中: 1.用户命令 2.系统调用 3.库调用 4.设备文件 5.配置文件 6.游戏 7.杂项 8.管理命令

  7. Apache httpd和JBoss构建高可用集群环境

    1. 前言 集群是指把不同的服务器集中在一起,组成一个服务器集合,这个集合给客户端提供一个虚拟的平台,使客户端在不知道服务器集合结构的情况下对这一服务器集合进行部署应用.获取服务等操作.集群是企业应用 ...

  8. php单链表实现的代码

    <?php/*** 单链表*/ class Demo{private $id;public $name;public $next;public function __construct ($id ...

  9. HDU 3887:Counting Offspring(DFS序+树状数组)

    http://acm.hdu.edu.cn/showproblem.php?pid=3887 题意:给出一个有根树,问对于每一个节点它的子树中有多少个节点的值是小于它的. 思路:这题和那道苹果树是一样 ...

  10. GDCPC2016 省赛随笔

    这是第一次参加省赛,第二次参加正式的组队赛. 昨晚很早就睡,早上挺早就睡不着醒了,内心既紧张又激动(虽然赛前和队友说尽力就好,但是还是很怕打铁啊).然后吃过早餐跟随学校大部队来到了中大.发现有好多学校 ...