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表示方法没有返回值;
相关推荐
盛小夏18 分钟前
元组(Tuple)详解:初学者必须掌握的数据结构
scala
赞鱼儿19 小时前
Scala中函数的基本使用
scala
还是大剑师兰特2 天前
Scala面试题及详细答案100道(71-80)-- 与Java的交互
scala·大剑师·scala面试题
92743 天前
12函数参数
scala
geilip7 天前
知识体系_scala_利用scala和spark构建数据应用
开发语言·spark·scala
Hello.Reader7 天前
Flink 高级配置发行版剖析、Scala 版本、Table 依赖与 Hadoop 集成实战
hadoop·flink·scala
IvanCodes11 天前
八、Scala 集合与函数式编程
大数据·开发语言·scala
卓码软件测评12 天前
第三方软件测试公司:【Gatling基于Scala的开源高性能负载测试工具】
测试工具·开源·scala·压力测试·可用性测试·第三方软件测试
南棱笑笑生13 天前
20250931在RK3399的Buildroot【linux-6.1】下关闭camera_engine_rkisp
开发语言·后端·scala·rockchip
今天没有盐15 天前
内建控制-循环语句while
scala