03_Scala变量和数据类型

embedded/2024/9/23 1:06:48/

文章目录

    • @[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

scala_90">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表示方法没有返回值;

http://www.ppmy.cn/embedded/24127.html

相关文章

java对象和json对象互转

在网上找了一大堆 没找到合适的 import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j;import java.io.IOException; im…

look-behind requires fixed-width pattern_正则表达式

问题&#xff1a;例如我想要匹配一段文本中&#xff0c;字符“a”在“小猫”的前面&#xff0c;中间有可能间隔好几个字符&#xff0c;也有可能直接相邻。结果只返回“小猫”。 import re text "这是一只非常可爱的a的的小猫." pattern r"(?<a*)小猫"…

智能物联网时代:Web3连接智能设备的未来

随着科技的飞速发展&#xff0c;物联网&#xff08;IoT&#xff09;已经成为了现代生活中不可或缺的一部分。从智能家居到智能城市&#xff0c;物联网技术正在改变我们的生活方式和工作方式。而Web3作为下一代互联网的重要组成部分&#xff0c;将为智能物联网带来哪些新的可能性…

云计算中的网络服务

网络服务是云计算平台不可或缺的一部分&#xff0c;为用户提供构建、管理、保护云环境中网络资源的能力。以下是对列举的七种网络服务——虚拟私有云&#xff08;VPC&#xff09;、负载均衡、内容分发网络&#xff08;CDN&#xff09;、云防火墙、专用网络连接&#xff08;专线…

windows平台安装labelme

之前写过一篇文章也是关于在windows平台安装labelme的&#xff1a;《windows平台python版labelme安装与使用_labelme下载-CSDN博客》&#xff0c;随着软件与工具的更新换代&#xff0c;按照同样的方法最近在使用的时候出现了错误&#xff0c;出现创建虚拟环境失败&#xff0c;具…

搜维尔科技:Varjo XR-4客户体验中,在VR体验中获得高层次的视觉保真度和沉浸感。

Varjo XR-4系列是Varjo的最新一代头戴式显示器&#xff0c;其代表着世界领先的的混合现实技术和图形处理能力。新一代的XR-4更加迎合工业使用案例&#xff0c;在用户在VR体验中获得高层次的视觉保真度和沉浸感。 搜维尔科技&#xff1a;Varjo XR-4客户体验中&#xff0c;在VR…

webscoket+webrtc实现语音通话

1.项目方案 前端采用webrtc创建音频上下文&#xff0c;后创建音频源输入和音频处理器&#xff0c;连接音频输入与处理器&#xff0c;处理器再连接到音频输出&#xff08;扬声器&#xff09;&#xff0c;再通过事件获取音频数据&#xff0c;把音频数据转换成字节数据通过webscok…

使用Maven将SpringBoot项目打成jar包

Maven打包最为推荐方式&#xff0c;方便快捷 项目右侧点击Maven&#xff0c;然后在Lifecycle下&#xff0c;点击install