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表示方法没有返回值;
相关推荐
、BeYourself6 天前
Scala 数据类型
开发语言·后端·scala
howard20056 天前
1.2 Scala变量与数据类型
scala·变量·数据类型·常量
渣渣盟6 天前
Flink定时器实战:处理时间与事件时间
大数据·flink·scala
howard20056 天前
1.1.4 Scala的使用方式
scala·交互方式·文件方式
、BeYourself8 天前
Scala 基础语法
开发语言·scala
渣渣盟11 天前
Flink实现TopN URL访问量统计
大数据·flink·scala
普通网友11 天前
探索Perl在ASIC中的应用:深入标量、数组和哈希的应用
scala·哈希算法·perl
zxfBdd25 天前
Error:scala: No ‘scala-library*.jar‘ in Scala compiler classpath in Scala SDK
大数据·scala·jar
SHeqSpMeS1 个月前
雷达信号处理:运动目标相参积累——Radon-Fourier算法,用于检测运动目标,实现距离和...
scala