zoukankan      html  css  js  c++  java
  • 《快学scala》读书笔记(1)

      第一章  基础

       1.安装scala解释器

         (1)scala-2.12.1.msi

         (2)配置环境变量:SCALA_HOME = D:Program Filesscala

                  Path= %SCALA_HOME%in;%SCALA_HOME%jrein;

                  ClassPath =.;%SCALA_HOME%in;%SCALA_HOME%libdt.jar;%SCALA_HOME%lib ools.jar.; 

         (3)验证解释器是否安装成功。

            进入命令行键入scala看是否成功

            

          

            

            如上图,8*5+2的结果是42,是Int型;42*0.5=21.0得到的是Double型;"Hello,"+res0=Hello,42得到的是String类型

            res2.to加tab键解释器会给出以下类型

        2声明值和变量

          (1)除了直接使用res0和res1这些名称之外,也可以自己定义名称,并且可以在后续的表达式中使用这些名字。

        val 定义的值实际上是一个常量,在scala中,常量是一个无法改变的内容,所以answer=0会发生报错。如果要声明一个可以改变的量,可以用var:

      在scala中,我们鼓励使用val,除非需要真的改变一个变量的内容,一般情况下我们都用val

      在scala中,变量或者函数的类型总是写在变量或者函数的名称的后面

      在变量声明或者赋值语句之后,我们并没有用分号。在Scala中,仅当同一行代码中存在多条语句的时候,才需要用分号分开。

      将xmax和ymax设置为100;greeting和message都是字符串

      3常用数据类型

         (1)Scala中7种数值类型:Byte,Char,Short,Int,Long和Double以及一个Boolean类型。这些类型是类,Scala并不区分这是基本类型还是引用类型,可以对数字执行如下方法,

          1.toString()  //产出字符串"1"

        (2)intersect()方法输出两个字符串的共通的一组字符

          "Hello".intersect("World")  //输出"lo"

        (3)Scala提供了RichInt,RichDouble,RichChar等。

          1.to(10)====>Int值1首先转换为RichInt值,然后在应用to方法

        (4)BigInt和BigDecimal类。用于任意大小的数字(有穷),这两个类对应的类分别是

          java.math.BigInteger和java.math.BigDecimal

        (5)在Scala中,我们用方法而不是强制类型转换来做数值类型之间的转换。

            如99.44toInt得到99;

            99.toChar得到'c';

            toString方法可以将任意对象转换为字符串;

            要将包含数字的字符串转换为数值,使用toInt或者。例如:"99.44".toDouble得到99.44

       4算数和操作符重载

           (1)+ - * / %等操作符实际上是方法

            通用公式:a  方法  b<=======>a.方法(b),这里的方法是带有两个参数的方法(一个是隐式的和一个是显式的)

            a + b<======>a.+(b)      //这里+号是方法名

           (2)Scala没有提供++和--操作符,我们一般使用+=1或者-=1

            counter+=1  //将counter进行递增的操作,Scala没有++

           (3)对于BigInt和BigDecimal对象,可以用常规的方法使用操作符

            val x:BigInt=1234567890

            x*x*x  //将产出1223434523452345242

       5.调用函数和方法

          (1)Scala中使用数学函数不需要不需要调用静态方法

            sqrt(2)    //将产出1.4122.........

            pow(2,4)    //将产出16.0

            min(3,pi)    //产出3.0

            这些数学函数式在scala.math中的。当然也可以进行人为的定义,

            import scala.math._    //在scala中,_字符是通配符,类似于Java中的*

            在使用scala.开头的包的时候,我们可以省略scala前缀。例如,import math._等同于import scala.math._;而math.sqrt(2)等同于scala.math.sqrt(2)  

            引入包:import 包名._

        (2)没有参数且不改变当前对象的方法不带圆括号。不带参数的Scala方法通常不带圆括号。

          "Hello".distinct      //,作用是获得字符串中不重复的字符,该方法没有圆括号。

        (3)apply()方法

        在Scala中,我们通常会使用类似函数调用的方法。比如:如果s是一个字符串,那么s(i)就是该字符串的第i个字符。

        def apply(n:Int):Char

        "Hello"(4)<======>"Hello".apply(4)    //产出'o'

        如下语句:BigInt.apply("1234567890"),这个语句将会产生一个新的BigInt对象,不需要使用new;像这样用伴生对象的apply方法是Scala中构建对象的常用手法,如Array(1,4,9,16)会返回一个数组,用的就是Array伴生对象的apply方法。

        

  • 相关阅读:
    MyBatis常见面试题以及解读
    如何防止sql注入攻击
    宝塔Linux面板基础命令
    Centos7配置静态ip
    宝塔Linux面板安装
    idea中安装阿里巴巴的代码规范插件
    idea中快速将类中的属性转为Json字符串的插件
    创建线程的四种方式
    sleep()方法与wait()方法的区别
    解决线程安全的几种方式
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/9826794.html
Copyright © 2011-2022 走看看