03_Scala变量和数据类型

### 文章目录

  • [@[toc]](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**变量和数据类型**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**1.注释**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**2.变量和常量**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**3. 标识符的命名规范**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**4.scala的字符串**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**5.键盘输入**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**5.1 StdIn.readLine()**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**5.2 从文件中读取数据**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)
  • [**5.3 Scala向外写数据**](#文章目录 @[toc] 变量和数据类型 1.注释 2.变量和常量 3. 标识符的命名规范 4.scala的字符串 5.键盘输入 5.1 StdIn.readLine() 5.2 从文件中读取数据 5.3 Scala向外写数据)

变量和数据类型

1.注释

和Java完全一样

**

**

2.变量和常量

var name [:VariableType] = value // variable
val name [:ConstantType] = value // constant

变量var常量val

其次,Java是先写类型后写名称,scala是先写名称,后写类型;

放到后面的原因是:scala认为类型并不重要

**

**

一般编译器都可以进行自动推断,所以红色部分类型都可以省略;

**

**

//    1.声明变量时,类型可以省略,编译器可以自动推导
    val b =100

//    2.类型定义后就不能修改,因为Scala是强数据类型语言

//    3.变量声明必须有初始值

//    var  d

//    4.变量,常量分别用var,val声明修饰,var修饰的变量的值可改变,val修饰不可改变
    a=100
//    b=50

引入数据类型若是静态变量 ,其可以改变它的属性值,但是前提是其属性值是var修饰;

**

**

**

**

注:你也不能直接重新new或者重新赋值操作;

3. 标识符的命名规范

  • 字母下划线开头,后跟字母数字下划线,和C/C++/Java一样。
  • 操作符开头,且只包含(±*/#!等),也是有效的标识符。这样用会用什么奇怪的好处吗?答案是灵活到天顶星的运算符重载。
  • 用反引号包括的任意字符串,即使是同39个Scala关键字同名也可以。有点奇怪的用法,尚不知道为什么。
  • **
    **

关键字:

  • package import class obejct trait extends with type for
  • private protected abstract sealed final implicit lazy override
  • try catch finlly throw
  • if else match case do while for return yield
  • def var val
  • this super
  • new
  • true false null
  • 其中Java没有的关键字:object trait with implicit match yield def val var

4.scala的字符串

基本用法

1)字符串通过+拼接

2)printf使用%进行值传递

3)字符串模板插值字符串:通过$获取其变量值;

**

**

关于%不太行,还是别用此方法拼接;

**最终一个方法双引号前加s,然后用${}取值经常用到;

**

关于格式化数据类型
双引号前面加f
然后%设置格式
.2表示小数点后保留几位
100表示前面要最少100位,如果不够,在整数前面补0,就像上述
如果超了,那没事

//三引号表示字符串,保持多行字符串的原格式输出

**

**

 //stripMargin表示边界输出,也就是仅输出有效内容

**

**

目的也是方便写sql,而不进行拼接;

5.键盘输入

5.1 StdIn.readLine()

**

**

**

**

5.2 从文件中读取数据

**

**

1.定义文件
2.创建对象,Source.fromFile()
3.如果遍历需要创建迭代器		getLines().var
4.source.close()

5.3 Scala向外写数据

**

**

1.定义PrintWriter对象
2.向外写
3.flush()
4.close

Unit表示方法没有返回值;
相关推荐
Bro_cat1 天前
Scala&尾递归解决爆栈问题
开发语言·后端·scala·尾递归优化
看未来捏1 天前
【数字集成电路与系统设计】Chisel/Scala简介与Verilog介绍
scala·verilog·chisel
lisacumt1 天前
【java】scala ExecutorService停止线程池的简单案例
java·scala
Mephisto.java3 天前
【Scala入门学习】Scala的方法和函数
开发语言·学习·scala
汽水配辣条3 天前
windows10通过coursier安装scala
开发语言·后端·scala
武子康3 天前
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
java·大数据·数据库·sql·flink·spark·scala
Mephisto.java3 天前
【Scala入门学习】基本数据类型和变量声明
大数据·hive·kafka·scala·涛思数据·scala3.1.2
武子康5 天前
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
java·大数据·clickhouse·flink·spark·scala
隔着天花板看星星6 天前
Spark-ShuffleWriter-UnsafeShuffleWriter
大数据·分布式·spark·scala
武子康7 天前
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
java·大数据·flink·spark·scala