【Scala】1. 变量和数据类型

1. 变量和数据类型

1.1 for begining —— hello world

新建hello.scala文件,注意object名字与文件名一致。

object hello {  def main(args:Array[String]): Unit = {  println("hello world!")  }  
}

运行后打印结果如下:

hello world!Process finished with exit code 0

可以不添加返回值类型,scala自动推断,下面输出的结果是一致的。

object hello {  def main(args:Array[String]) = {  println("hello world!")  }  
}

1.2 数据类型

重要的变量类型如下:
在这里插入图片描述

浮点数默认是Double类型,上表中出现了错误。
注:

(1)上述类型基本和c或c++语言类型一致,Scala在此基础上有所拓展:
其中Byte关键字等同于c语言中的char关键字,表示有符号8bit数据;
(2)在Scala中,Char关键字表示无符号的16bit数据,数据范围为0~65535。

可以看下下面的举例:

scala> val a = 1.22
a: Double = 1.22scala> val b = 2.88
b: Double = 2.88scala> val c = a + b
c: Double = 4.1scala> println(c)
4.1

不加f关键字,则必定是Double的类型的数据,只有加了在浮点数后加了f关键字后,才表示数据为单精度浮点数,即是32bit的浮点数类型。
注:

与f类似,若要表示数据为长整型(long)的数据,需要在后面加上L或l关键字作为补充

在scala中使用方法如下,新建variable.scala文件,并添加如下代码:

object variable {  def main(args:Array[String])= {  val a = 1.22  val b = 2.88  val c = a + b  println(f"c == $c%.2f")  }  
}

最后打印的结果如下:

c == 4.10Process finished with exit code 0

注:

println函数中添加f关键字起到格式化字符串打印的效果,这个和c语言不同,同时还可以添加s关键字执行特定的表达式。

1.3 SpinalHDL运算拓展

在SpinalHDL中,可以使用 ": ="对val变量进行赋值操作。

object variable {  def main(args:Array[String])= {  val a = 1.22  val b = 2.88  val c = a + b  print(f"c == $c%.2f\n")  val d = 0  d := a * b  println(f"d == $d%.2f")  }  
}

上述代码中,使用scala编译是会出错的,采用SpinalHDL则不会。

	var d = 0.0  d = a * b  println(f"d == $d%.2f")  

修改后代码可以正确执行。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能(pytorch)搭建模型24-SKAttention注意力机制模型的搭建与应用场景

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型24-SKAttention注意力机制模型的搭建与应用场景,本文将介绍关于SKAttention注意力机制模型的搭建,SKAttention机制具有灵活性和通用性,可应用于计算机视…

机器学习-梯度下降法

不是一个机器学习算法是一种基于搜索的最优化方法作用:最小化一个损失函数梯度上升法:最大化一个效用函数 并不是所有函数都有唯一的极值点 解决方法: 多次运行,随机化初始点梯度下降法的初始点也是一个超参数 代码演示 impor…

C# OpenCvSharp DNN 部署yolov4目标检测

目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms;namespace OpenCvSharp_DNN_Demo {publ…

Mysql进阶(锁)

一、锁概述 两个事务的写操作之间的互相影响。隔离性要求同一时刻只能有一个事务对数据进行写操作,InnoDB通过锁机制来保证这一点。 锁机制基本原理: 事务在修改数据之前,需要先获得相应的锁;获得锁之后,事务便可以…

【element-ui】el-select下拉框el-date-picker弹出框定位问题解决方案

问题描述: 项目开发过程中发现el-select和el-date-picker弹出框显示时候,滚动屏幕,导致弹出框定位出现问题。 首先考虑到看一下element-ui官网提供的api,如下图 1、select提供了popper-append-to-body属性的配置 代码如下&#x…

信钰证券:股票布林线是什么意思?

布林线又名boll线,它是股票技术剖析中一种常用的目标,由上轨、中轨、下轨三条线构成一个带状区间。 布林线是约翰布林发明的,以股票的规范差为基准,求得股票的价格信赖区间,以此来预测股票价格的走势。 一般以20日移动…

【C++】C++的简要介绍

简单不先于复杂,而是在复杂之后。 文章目录 1. 什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 3.3.3 面试题 4. 如何学习C4.1 别人怎么学? 1. 什么是C C语言是结构化和模块化的语言&…

正点原子--STM32基本定时器学习笔记(1)

目录 1. 定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 定时器分类 1.4 定时器特性表 1.5 基本、通用、高级定时器的功能整体区别 2. 基本定时器简介 3. 基本定时器框图 时钟树分析 这部分是笔者对基本定时器的理论知识进行学习与总结!主要记录学习…

品牌如何营造生活感氛围?媒介盒子分享

「生活感」简而言之是指人们对生活的感受和意义,它往往没有充斥在各种重要的场合和事件中,而是更隐藏在细碎平凡的生活场景中。在营销越来越同质化的当下,品牌应该如何打破常规模式,洞察消费情绪,找到更能打动消费者心…

python coding with ChatGPT 打卡第17天| 二叉树:找树左下角的值、路径总和

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…

LeetCode-第171题-Excel表的序列号

1.题目描述 给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 2.样例描述 3.思路描述 遍历时将每个字母与 A 做减法&…