首页 > 编程语言 >Scala编程语言day1

Scala编程语言day1

时间:2024-01-13 19:56:08浏览次数:38  
标签:Java 编程语言 val Scala day1 运算符 var 变量名

一、Scala概述

Scala是一种运行在JVM上的函数式的面向对象语言,它集成了面向对象编程和面向函数式编程的各种特性,以及更高层的并发模型

Scala的语言特点

Scala是兼容的:兼容Java,可以访问庞大的Java类库

Scala是精简的:Scala表达能力强,开发速度快

Scala是高级的:Scala可以让你的程序保持短小,清晰,看起来更简洁,更优雅

Scala是静态类型的:Scala拥有非常先进的静态类型系统

Scala可以开发大数据应用程序:例如Spark程序、flink程序等等

Scala程序和Java程序对比

Java源代码通过javac编译,编译结果为Java字节码、Java类库

Scala源代码通过scalac编译,编译结果为Java字节码、Java类库、Scala类库

Scala环境搭建

JDK

Scala SDK  下载地址:https://www.scala-lang.org/download/

IDEA 在 plugins 中安装 Scala 插件  下载地址:https://plugins.jetbrains.com/plugin/1347-scala/versions

 Scala解释器

启动Scala解释器:win + R 打开cmd  输入Scala

停止运行Scala:输入 :quit scala

二、第二章

输出

换行输出 println();  不换行输出print();

分号:单行的分号可写可不写,但是多行代码中间的分号不可省略,最后一个代码可省略

常量

整型、浮点型、字符型、字符串、布尔常量、空常量

变量

定义 val/var 变量名:变量类型 = 初始值

val/var的区别:val定义的是不可重新赋值的变量,var定义的是可重新赋新值的变量

使用类型推断来定义变量: val name=初始值;

字符串

双引号:var name="hadoop" ;   println(name+name.length);

通过插值表达式来定义字符串: var 变量名=s"${变量/表达式}字符串"

三引号用于要保存大段文本,可以保持换行

惰性赋值

当有一些变量保存的数据较大时,而这些数据又不需要马上加载到JVM内存中。就可以使用惰性赋值来提高效率

定义:lazy var/val 变量名=“要输入的内容”

标识符

标识符就是用来给变量、方法、类等起名字的

命名规则:1.必须由大小写英文字母、数字、下划线_,美元符$,这四部分任意组成

     2.数字不能开头

     3.不能和关键字重名

     4.最好见名知意

命名规范:变量或方法从第二个单词开始,每个单词的首字母都大写,其他字母全部小写

     类或特质每个单词的首字母都大写,其他所有字母全部小写

     包全部小写,一般是公司的域名反写,多级包之间用.隔开

数据类型

Scala中所有的类型都使用大写字母开头  整型使用Int而不是Integer  Scala中默认的整型是Int,默认的浮点型是Double

类型层次结构

类型转换

自动类型转换:范围小的数据类型值会自动转换为范围大的数据类型值

自动类型转换从小到大分别为:Byte,Short,Char->Int->Long->Float->Double

强制类型转换:范围大的数据类型通过一定的格式可以将其转换为范围小的数据类型值

val/var 变量名:数据类型=具体的值.toXXX

值类型和String类型之间的相互转换

值类型转换为String类型:1.val/var 变量名:String=值类型数据+""

            2.val/var 变量名:String=值类型数据.toString

String类型转换为值类型:val/var 变量名:值类型=字符串值.toXXX

String转换为Char不是toChar而是toCharArry

键盘录入

1.导包

import scala.io.StdIn

2.通过StdIn.readXX()来接收用户键盘录入的数据

字符串:StdIn.readLine()

Int:StdIn.readInt()

Double:StdIn.readDouble()

第三章运算符

算数运算符:+、-、*、/、%

赋值运算符:=、+=、-=、*=、/=、%=

关系运算符:>、>=、<、<=、==、!=

逻辑运算符:&&、||、!

位运算符

二进制的数据,最前面的那一位叫:符号位,0表示正数,1表示负数。其他位叫数值位

原码反码补码

正数的原码反码补码都一样

负数的反码是原码的符号位不变,数值位安慰取反。    负数的补码是反码+1

标签:Java,编程语言,val,Scala,day1,运算符,var,变量名
From: https://www.cnblogs.com/cinan/p/17962618

相关文章

  • 学了这么多编程语言,你学会了几种“Hello world”呢?
    学了这么多编程语言,你学会了几种“Helloworld”呢?王菜鸟于2020-05-0921:53:48发布阅读量2.1k收藏2点赞数15分类专栏:随笔记录文章标签:编程语言版权随笔记录专栏收录该内容31篇文章2订阅订阅专栏你知道多少种编程语言?本文整理了30种编程语言的HelloWorld程序,有些......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(8)- 时态表的join(scala版本)
    文章目录Flink系列文章一、maven依赖二、示例:时态表的join(scala版本)1)、统计需求对应的SQL2)、Withoutconnnector实现代码3)、WithCSVConnector实现代码本文给以scala的语言给出来TableAPI针对时态表的join操作。本文除了maven依赖外,没有其他依赖。本文需要有kafka的运行环境......
  • 代码随想录 day17 平衡二叉树 二叉树的所有路径 左叶子之和
    平衡二叉树之前一直写迭代代码没有怎么写递归正好这题不是很好写迭代练习一下递归这题递归逻辑相对简单左右子树高度差判断是不是大于一可以直接返回结果不大于一就高度max(l,r)+1二叉树的所有路径关键要点这题适合先序遍历回溯过程和递归过程是一起写的进来几次......
  • 32-Scala-函数式编程
    1.偏函数1.1案例引入给你一个集合List(1,2,3,4,"abc"),请完成如下要求:将集合中的所有数字+1,并返回一个新的集合;要求忽略掉非数字的元素,即返回的新的集合形式为(2,3,4,5)。objectPrePartialFuncTest{defmain(args:Array[String]):Unit={//=====......
  • 33-Scala-Akka
    1.Akka概述Akka是Java虚拟机JVM平台上构建高并发、分布式和容错应用的工具包和运行时,你可以理解成Akka是编写并发程序的框架。Akka用Scala语言写成,同时提供了Scala和Java的开发接口。Akka基于Actor模型,它提供了一种轻量级的并发抽象,称为Actor,以及处理并发和......
  • 29-Scala-面向对象
    1.面向对象编程基础1.1定义类基本语法:[修饰符]class类名{//code}Scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public)一个Scala源文件可以包含多个类1.2成员变量属性的定义语法同变量:[访问修饰符]var属性名称[:类型]=属性值......
  • day13 代码随想录算法训练营 递归遍历
    题目:144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历我的感悟:用helper内部函数写更好理解难点: 代码难点:代码示例:前序#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#......
  • 每日一练 | 华为认证真题练习Day162
    1、在路由器间使用缺省路由,是一种低成本的解决方案,但是比完整的路由表需要的系统资源更多。A.正确B.错误2、AS边界路由器可以是内部路由器IR或者是ABR,必须属于骨干区域。A.正确B.错误3、OSPFDR-PRIORITY命令默认值为1,取值范围为0-255。A.正确B.错误4、BGP邻居是通过UDP建立......
  • 新手学习指南:用Scala采集外卖平台
    学习爬虫不是一蹴而就的,在掌握相关的知识点的同时,还要多加练习,学习是一部分,更多的还是需要自己上手操作,这里配合自己学习的基础,以及使用一些爬虫的专有库,就可以轻松达到自己想要的数据。那么今天我将用Scala编程一个爬外面平台的代码,并且做了相关的注释,希望能帮助更多的人。在Scala......
  • 每日一练 | 华为认证真题练习Day161
    1、OSPFSTUB区域的ABR不向STUB区域内泛洪第五类LSA,第四类LSA和第三类LSA,因此STUB区域没有AS外部路由能力,STUB区域的ABR向区域内通告一条默认路由,指导发往AS外部的目的地。A.正确B.错误2、OSPF直接运行于TCP协议之上,使用TCP端口号179。A.正确B.错误3、如果RouterPriority被设......