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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/576834.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外包干了4个月,技术退步明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…

攻防世界 easyphp

本题主要利用的知识点是php绕过 一、PHP代码分析 首先先看一下代码 我们需要利用get方式上传3个参数a,b,c,这3个分别需要满足不同的条件: a:设置a值;值大于6000000;长度不超过3; b:设置b值;MD…

《QT实用小工具·三十五》基于PathView,Qt/QML做的一个可以无限滚动的日历控件

1、概述 源码放在文章末尾 改项目实现了基于PathView,Qt/QML做的一个可以无限滚动的日历控件,下面是demo演示: 项目部分代码如下所示: import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Bu…

基于Spring Boot的口腔管理平台设计与实现

基于Spring Boot的口腔管理平台设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 管理员登录界面图,管理员登录进入口腔管理平…

Spring Cloud OpenFeign使用

OpenFeign源于Netflix的Feign,是http通信的客户端。屏蔽了网络通信的细节,直接面向接口的方式开发,让开发者感知不到网络通信细节。 所有远程调用,都像调用本地方法一样完成。 Spring Cloud OpenFeign 是 Spring Cloud 对 Feign …

Unity AssetsBundle打包

为什么要使用AssetsBundle包 减少安装包的大小 默认情况下,unity编译打包是对项目下的Assets文件夹全部内容进行压缩打包 那么按照这个原理,你的Assets文件夹的大小将会影响到你最终打包出的安装包的大小,假如你现在正在制作一个游戏项目&…

Aigtek:功率信号源是什么东西

功率信号源是一种电子设备,它可以提供可控的、稳定的高功率输出信号。通常用于测试和校准功率放大器、天线等设备,以及进行无线通信、雷达和卫星导航等应用中。下面将详细介绍功率信号源的概念、功能和特点。 功率信号源的概念 功率信号源是指能够产生可…

SCSS的基本使用(一)

目录 一、使用&符号来引用父选择器 二、scss的语法 三、变量(Variables) 四、嵌套(Nesting) 五、mixin 和 include 六、extend 继承 七、import 与 Partials 八、if简单判断 九、if复杂判断 一、使用&符号来引用父…

鸿蒙云函数调试坑点

如果你要本地调试请使用 const {payload, action} event.body/** 本地调试不需要序列化远程需要序列化 */ // const {payload, action} JSON.parse(event.body) const {payload, action} event.body 注意: 只要修改云函数,必须上传云函数 如果使用 const {pay…

【服务器部署篇】Jenkins配置后端工程自动化部署

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

【亲测对比】大厂云服务器2-64G对比表 不卡顿 幻兽帕鲁 我的世界 雾锁王国 饥荒联机版 英灵神殿通用

更新日期:4月26日(京东云采购季持续进行) 本文纯原创,侵权必究 《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更新】2024年-幻兽帕鲁服务器专…

C语言系列文章 | 初识C语言

首先分为几个方面来和各位读者介绍C语言,并在之后的学习过程中不断地和各位读者去分享我学习的经历。 坐好,发车咯~目录如下:1. C语言是什么?2. C语言的历史和辉煌3. 编译器的选择VS20224. VS项目和源⽂件、头⽂件介绍5. 第⼀…

关于java对接微信公众号(对接百度AI实现图片文字识别,对接聚合数据实现笑话、谜语大全,成语接龙等功能)

前言: 只是自己学习使用,所以有点不规范,请见谅 本文直接附上源码与效果图,具体操作步骤请参考另一篇文章:http://t.csdnimg.cn/PQu25 1.运行效果图 1.1 关注事件 1.2 笑话大全 1.3 谜语大全 1.3 多级菜单 1.4 按钮…

MySQL基础知识——MySQL索引

深入浅出索引 索引的意义 索引的意义:在大量数据中,加速访问少量特定数据; 使用索引的前提条件: 1)索引块数量小于数据块数量; 2)索引键有序,故可以使用二分查找等高效的查找方式&…

互联网安全面临的全新挑战

前言 当前移动互联网安全形势严峻,移动智能终端漏洞居高不下、修复缓慢,移动互联网恶意程序持续增长,同时影响个人和企业安全。与此同时,根据政策形势移动互联网安全监管重心从事前向事中事后转移,需加强网络安全态势感…

ETF期权是什么详解

ETF期权是什么 ETF期权的本质是一种金融衍生品,与交易所交易基金(Exchange-Traded Fund,简称ETF)相关的期权合约。其核心在于赋予了投资者在未来某个时间点以约定价格买入或卖出特定ETF(交易所交易基金)的…

百望云发布金盾企业经营大模型,暨光明食品、法雷奥、西奥电梯财税数字化实践分享

百望云发布金盾企业经营大模型,暨光明食品、法雷奥、西奥电梯财税数字化实践分享 数字化转型思想指导下,如何标定好、利用好、管理好数据资产,已经成为企业寻找发展新动能的着力点。 基于此,“2024数字商业创新论坛”于4月26号在上…

2017美亚杯--个人赛

1、Gary的笔记本电脑已成功取证并制作成镜像 (Forensic Image),下列哪个是其MD5哈希值。A.0CFB3A0BB016165F1BDEB87EE9F710C9 B.5F1BDEB87EE9F710C90CFB3A0BB01616 C.A0BB016160CFB3A0BB0161661670CFB3 D.16160CFB3A0BB016166A0BB016166167 E.FB3A0BB016165 B016166…

【论文阅读】Self-DC:何时检索,何时生成?

对于RAG来说,什么时候利用外部检索,什么时候使用大模型产生已知的知识,以回答当前的问题?这是一个非常有趣的话题。 《Self-DC: When to retrieve and When to generate? Self Divide-and-Conquer for Compositional Unknown Questions》这…

环境配置——Windows平台配置VScode运行环境为远程服务器或虚拟机

1. 远程机需要先安装SSH服务,命令如下 sudo apt install openssh-server 2. 安装好后需要开启SSH服务: sudo service sshd start 3. 查看SSH服务是否有被开启: sudo systemctl status sshd.service 4. 本地Windows需要生成密钥将公钥放…