美文网首页spark
scala基础(1)

scala基础(1)

作者: Jasmine晴天和我 | 来源:发表于2019-08-01 13:53 被阅读0次

处理数据:字面量、值、变量和类型

特点
scala是运行在java虚拟机上的,兼容现有的java程序;
面向对象;函数式语言;轻量级函数,高阶函数,并发性比较好;

基本语法

区分大小写;
类名第一个字母大写,或者每个单词的第一个字母大写;
方法名称第一个字母小写,每个单词的第一个字母大写;
程序文件名与对象名称完全匹配(新版本不需要了,但仍保留习惯);
scala程序从main()方法开始处理;
$为开头的标识符为保留的scala编译器产生的标识符使用;
scala用package关键字来定义包
1.在文件的头定义包名:

package com.runoob
class HelloWorld

2.可以在一个文件中定义多个包

package com.runoob{
class HelloWorld
}
##引用
Import java.awt.Color //引入color
import java.awt._ //引入包内所有
import java.awt.{Color,Font} //引用其中几个成员
Import java.util.{HashMap => JavaHashMap} //重命名成员
import java.util.{HashMap => _,_} //引入了util包的所有成员,但是hashmap并隐藏了

处理数据

  • 字面量或字面数据;

scala数据类型

数据类型 描述
Byte 8位有符号补码整数。数值区间为 -128 到 127
Short 16位有符号补码整数。数值区间为 -32768 到 32767
Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32 位, IEEE 754 标准的单精度浮点数
Double 64 位 IEEE 754 标准的双精度浮点数
Char 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String 字符序列
Boolean true或false
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类

byte等级最低,可以转换为任何其他类型,不能从高等级向低等级转换

可以用toType方法手动完成类型间的转换

多行字符串用三个双引号来表示分隔符

转义

转义符号 描述
\b 退格(BS) ,将当前位置移到前一列
\t 水平制表(HT) (跳到下一个TAB位置)
\n 换行(LF) ,将当前位置移到下一行开头
\f 换页(FF),将当前位置移到下页开头
\r 回车(CR) ,将当前位置移到本行开头
\" 代表一个双引号(")字符
\' 代表一个单引号(')字符
\\ 代表一个反斜线字符 ''

值(不可变)

val <name>:<type> = <literal>
val x:Int = 5
val xmax, ymax = 100 //多个变量声明
val pa = (40,"Foo")

变量(可重新赋值,但不能改变为他指定的类型)

var a:Double = 2.72
var myvar: String = "foo"

在 Scala 中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的。

所以,如果在没有指明数据类型的情况下声明变量或常量必须要给出其初始值,否则将会报错。

值优先于变量

字符串

string类型支持使用数学运算符,=检查真正的相等,而不是引用相等

字符串内插,在第一个双引号前面加“s”前缀,使用来指示外部数据的引用。println(s"Pi, using 355/113, is aboutapprox."),字符串内插的替代格式是使用printf记法,前缀改成f

正则表达式

基于java类java.util.regex.Pattern

matches 匹配,返回true

replaceAll 用替换文本取代所有匹配文本

replaceFirst 用替换文本取代第一个匹配文本

富包装类:在scala.runtime中,基本类型都对应一个富包装类。

range

1 to 5是(1,2,3,4,5)

1 until 5 是(1,2,3,4)

1 to 10 by 2 步长是2

0.5f to 5.9f by 0.8f

从控制台读取数据input

import io.StdIn._
var i = readInt()
输入一个数字

输出

print()
println()
printf() #也是支持的

写入文件

import java.io.PrintWriter
val out = new PrintWriter(".../output.txt") //当前在哪个路径下启动的scala,文件就被写到哪里
for (i <- 1 to 5) out.println(i) //写入
out.close

读取文件

import scala.io.Source
val inputFile = Source.fromFile("output.txt")
val lines = inputFile.getLines
for (line <- lines) println(line)

异常处理

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
try {
  val f = new FileReader("input.txt")
  //文件操作
} catch {
  case ex: FileNotFoundException => 
        //文件不存在时的操作
  case ex:IOException =>
   // 发生I/O错误时的操作
} finally {
  file.close()// 确保关闭文件
}

相关文章

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • scala基础(1)

    处理数据:字面量、值、变量和类型 特点scala是运行在java虚拟机上的,兼容现有的java程序;面向对象;函数...

  • -2- scala基础教程

    [scala简介link][scala基础教程link] 在-1- scala安装及环境配置中,编写并运行了hel...

  • Scala编程基础1:Scala简介

    因为Spark是基于Scala编程的,所以在进入Spark学习之前,我们有必要先来学习一下Scala语言的相关知识...

  • 一 :scala (1)基础

    1 /scala的七种数值类型 Byte Char Short Int Long Float Double ...

  • Scala编程基础10:Scala函数1

    Scala中有函数和方法,二者在语义上区别很小。Scala方法是类的一部分,而函数是一个对象,可以赋值给一个变量,...

  • scala基础

    Scala基础 Scala语言概况 Scala语言起源 马丁·奥德斯基(Martin Odersky)是编译器及编...

  • Scala学习笔记

    Scala笔记 基础教程 http://www.runoob.com/scala/currying-functio...

  • Scala语言学习

    Scala语言学习 基础 安装Scala REPL(Read-Evaluate-Print-Loop shell)...

  • 一口气搞定系列-Scala语言基础

    一、Scala语言基础 1.基本语法 (1),变量声明 (2),读写文件 (3),for循环 1),基本for循环...

网友评论

    本文标题:scala基础(1)

    本文链接:https://www.haomeiwen.com/subject/xopqdctx.html