zoukankan      html  css  js  c++  java
  • 01scala环境搭建和基础

    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+"-- "
                print(border+"|"+s+"| "+border)
             }

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

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

  • 相关阅读:
    C# 手机号码隐藏中间四位
    mysql-8.0.20-winx64 绿色版安装教程
    C# 钩子函数使用
    C#反射机制学习
    docker学习笔记二
    从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B
    关于mysql远程登录问题
    playframework 编译打包过程失败
    docker学习笔记一
    记一次tomcat7.0版本启动项目失败问题
  • 原文地址:https://www.cnblogs.com/lifeone/p/4912748.html
Copyright © 2011-2022 走看看