快学Scala-第一章 基础】的更多相关文章

转载: 1.变量声明 val answer = 8 * 5 + 2; //常量 var counter = 0;    //变量 //在必要的时候 ,可以指定类型 val greeting:String = null val greeting:Any = "Hello" //可以将多个值或变量放在一起声明 val xmax, ymax = 100 //xmax 和 ymax设为100 var greeting, message:String = null // 都被设为字符串,被初始化…
知识点: Scala程序并不是一个解释器,实际发生的是,你输入的内容被快速的编译成字节码,然后这段字节码交由Java虚拟机执行. 以val定义的值是一个常量,以var定义的值是一个变量,声明值或变量但不做初始化会报错. 变量或函数的类型总是写在变量或函数名称的后面. Scala中,仅当同一行代码中存在多条语句时才需要用分号隔开. Scala有7种数值类型:Byte.Char.Short.Int.Long.Float.Boolean,这些类型是类.在Scala中不需要包装类型,在基本类型和包装类型…
Scala 用val定义常量,用var定义变量. 常量重新赋值就会报错. 变量没有问题. 注意:我们不需要给出值或者变量的类型,scala初始化表达式会自己推断出来.当然我们也可以指定类型. 多个值和变量可以一起声明: Scala 类型:Byte, Char, Short, Int, Long, Float, Double, Boolean Scala不区分基本类型和引用类型(包装类型) Scala StringOps类给字符串追加了上百种操作,所以在"Hello".intersect…
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on the Java Virtual Machine>好很多. 是本不错的入门书.而且每个章节都设置了难度级别,每章有习题,可以巩固Scala语法. 本文的目的就是针对这些习题进行解答 2 基础  2.1 在Scala REPL中键入3,然后按Tab键.有哪些方法可以被应用? 这个....直接操作一遍就有结果了…
Robert Peng's Blog - https://mr-dai.github.io/ <快学Scala>Intro与第1章 - https://mr-dai.github.io/Scala-for-the-Impatient-1 <快学Scala>第2章(上):控制结构 - https://mr-dai.github.io/Scala-for-the-Impatient-2-1 <快学Scala>第2章(下):函数 - https://mr-dai.github…
第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码本模式 Electronic Code Book(ECB) 这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密. 其缺点是:电子编码薄模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,因此,…
第一章 基础 第一节 软件架构与软件架构师  简单的说软件架构即是为客户构建一个软件系统.架构师随便软件架构应运而生,架构师是一个角色. 2000年9月ANSI和IEEE发布了<密集性软件架构建议章程>Recommended practice for architectural description of software-intensive systems 1.  软件架构的目的 2.  架构师的角色与职责 第二节 成功的设计 成功的软件项目是充分实现了软件的需求,成功的软件设计是指成功的…
第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴技术和产业需求的推动下,对数据存储和计算要求也日益提高,并且对计算数据的准确性和精度也远高于互联网数据.而在这些现象的背后,当前的数据计算早已经突破MB量级,GB成为常态,TB变得流行,正在向PB迈进的时候,面对如此庞大的数据量,如果管理和使用它们,满足各种计算需求,发现和筛选其中有价值的信息,通常…
第一章 基础shell的优势在于处理操作系统底层的业务,Python,php的优势在于开发运维工具,web界面的管理工具以及web业务开发.处理一键安装.优化.报警脚本shell又叫命令解释器,它能识别用户输入的各种命令,并传递给操作系统,Linux系统默认的shell是bash.脚本的建立:    脚本开头第一行  #!/bin/bash 或 #!/bin/sh#!又称为幻数,在执行bash脚本的时候,内核会根据"#!后的解释器来确定该用哪个程序解释脚本中的内容如果不设置,则为系统默认的解释器…
wpf第一章基础知识:通过vs2015创建wpf程序会在引用里面多出3个核心程序集PresentationCore.PresentationFramework.WindowsBase.并且会在解决方案中生成如下的结构: 1.程序起始相关的资源:2.与整个wpf相关的后台代码:3.窗体界面:4.窗体界面的后台代码. 在app.xaml中 1.Application的后台类:2.启动窗体:3.系统资源区域 除此之外可以在MainWindow.xaml中自定义窗体设置属性,拖拉控件在里面.…
trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super.log依旧是个abstract class,所以必须在方法前加上abstract和override.但是并没有具体介绍如何使用,然后查阅了其他文档,才明白使用方法. 下面的代码定义了超类LoggerEmpty,这个定义意味着该特质只能混入扩展LoggerEmpty的类中. 在特质中声明抽象方法中有…
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff; height: 55px width:100% -moz-border-radius: 3px; padding: 3px; margin: 10px 0px; font-family: "微软雅黑", "宋体", "黑体", Arial } P…
第一章 基础 1.安装scala解释器 (1)scala-2.12.1.msi (2)配置环境变量:SCALA_HOME = D:\Program Files\scala Path= %SCALA_HOME%\bin;%SCALA_HOME%\jre\bin; ClassPath =.;%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.; (3)验证解释器是否安装成功. 进入命令行键入scala看是否成功 如上…
第一章:基础知识 1.1 安装python.     直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell就可以编程了,还有这个默认的shell真是丑. 1.2 交互式解析器 输出  print("Hello World!\n") 也可以print("AAAAA");  就是后面加不加;无所谓,本身是不用加的. 1.3 算法是什么?   这个不解释了. 1.4 数字和表达式…
参考链接https://www.linuxprobe.com/ 忘记密码操作 启动页面 默认按e 在linux16行后空格 rd.break ctrl + x mount -o remount,rw /sysroot chroot /sysroot passwd touch /.autorelabel exit reboot 第一章 echo man date "+%Y+%m+%d %H:%M:%S" date -s "20181002 21:42:00" date…
4 映射和元组  4.1 设置一个映射,当中包括你想要的一些装备,以及它们的价格.然后构建还有一个映射.採用同一组键,可是价格上打9折 映射的简单操作  ,"gun"->18,"ipad"->1000)   , gun -> 18, ipad -> 1000)      scala> for((k,v) <- map) yield (k,v * 0.9)   res3: scala.collection.immutable.Map…
声明值和变量 用val定义的值实际上是常量.用var定义的值是变量.在scala中鼓励使用val.不需要给出值或变量的类型,这个信息可以通过初始化的表达式推断出来.(声明值和变量但不做初始化会报错) 在Scala中,变量或函数的类型总是写在变量或函数名称的后面.如下: val greeting: String = null val greeting: Any = "Hello" 在Scala中,仅当同一行中存在多条语句是才需要使用分号隔开. 我们可以将多个值或变量放在一起声明,如下:…
1. 编写一个Conversions对象,加入inchesToCentimeters.gallonsToLiters和milesToKilometers方法. object Conversions {     def main(args: Array[String]){         printf("1 inch = %g centimeters\n", inchesToCentimeters(1))         printf("2 gallons = %g liter…
5 类  5.1 改进5.1节的Counter类,让它不要在Int.MaxValue时变成负数 class Count{ private var value = Int.MaxValue else value } def current = value } 5.2 编写一个BankAccount类,增加deposit和withdraw方法,和一个仅仅读的balance属性 ){ def deposit(){} def withdraw(){} } 5.3 编写一个Time类,增加仅仅读属性hou…
3 数组相关操作  3.1 编写一段代码.将a设置为一个n个随机整数的数组,要求随机数介于0(包括)和n(不包括)之间  random和yield的使用 import scala.math.random def randomArray(n:Int)={ until n) yield (random * n).toInt } ).mkString(",")) 3.2 编写一个循环,将整数数组中相邻的元素置换.比如,Array(1,2,3,4,5)经过置换后变为Array(2,1,4,3,…
关于case class和普通class的区别,可以参考: https://www.iteblog.com/archives/1508.html…
scala 1.   scala的由来 scala是一门多范式的编程语言,一种类似java的编程语言[2] ,设计初衷是要集成面向对象编程和函数式编程的各种特性. java和c++的进化速度已经大不如从前,那么乐于使用更现代的语言特性的程序员们正在将眼光移向他处.scala是一个很有吸引力的选择:事实上,在我看来,对于想要突破和超越java或者c++的程序员而言,scala是最具吸引力的一个.scala的语法十分简洁,相比java的样板代码,scala让人耳目一新.scala运行于java虚拟机…
控制结构和函数 1.在Scala中,几乎所有构造出来的语法结构都有值.这个特性是为了使得程序更加精简,也更易读. (1)if表达式有值 (2)块也有值——是它最后一个表达式的值 (3)Scala的for循环就像是“增强版”的Java for循环 (4)分号(在绝大多数情况下)不是必须的 (5)void类型是Unit (6)避免在函数定义中使用return (7)注意别在函数式定义中漏掉了= (8)异常的工作方式和Java中基本一样,不同的是catch语句中使用“模式匹配” (9)Scala没有受…
第二章  控制结构和函数 1.条件表达式 (1)scala中if/else表达式有值,这个值就是跟在if或者else之后的表达式的值.如: if (x > 0) 1 else -1 这个表达式的值是1或者-1,具体是哪个值取决于x的值. 可以将这个if/else表达式的值赋给变量: val s = if (x>0) 1 else -1<=====> if (x>0) s=1 else s=-1 第一种方法更好,因为可以用来初始化一个val.第二种方法必须是var (2)Sca…
集合 13.1 集合的三大类 所有的集合都扩展Iterable特质.集合的三大集合为Seq, Set, Map Seq是一个有先后次序的值的序列,比如数组或列表.IndexSeq允许我们通过整型下表快速访问任意元素.但是链表不可以. Set是一组没有先后次序的值.SortedSet中,元素排过序. Map时一组(键,值)对.SortedMap按键排序 每一个Scala集合特质或类都有一个带有apply方法的伴生对象. 13.2 可变和不可变集合 13.3 序列Sequence 不可变序列:Ind…