Scala的简单语法介绍
创始人
2024-02-16 22:50:41

文章目录

  • 变量声明
  • 语句块
  • if语句
  • for循环
  • while、do while
  • 数组
  • Map映射
  • tuple元组

变量声明

//在Scala中val用于定义常量,var用于定义变量
var var_i = 1
var_i += 1val val_i = 1
val_i += 1
val_i = 2

运行结果如下:
在这里插入图片描述
可以看到,常量是初始复制就确定了,不能修改和重新复制,因为常量会比变量的执行速度等快,所以能定义常量的地方就定义常量。

Scala中也有数据类型的概念:
数据类型表达:变量名:数据类型。
声明时如果不明确写出数据类型,系统会自动判断。

var var_i:Float = 1

执行结果如下
在这里插入图片描述

语句块

Scala的语句块拥有返回值,这也是为什么Scala语句比较简短的原因之一。
例如:

val i = {val a=3; val b=4; a+b}

在这里插入图片描述
每次都会返回语句块中最后一段代码的返回值,如果不存在返回值,则返回Unit,表示返回值为空的意思。

if语句

(1)单行写法,一般用于赋值语句

在这里插入图片描述

(2)多行写法
当使用其他语言风格写时(如Java):

object helloWorld {def main(args: Array[String]): Unit = {val inData = 5var resultIf:String = "Not assignment"if(inData < 5) resultIf = "inData < 5"else if(inData < 10) resultIf = "5 =< inData < 10"else resultIf = "inData >= 10"print(resultIf)
//    println("Hello World")}
}

当使用Scala语言风格写时:

object helloWorld {def main(args: Array[String]): Unit = {val inData = 5var resultIf:String = {if (inData < 5) "inData < 5"else if (inData < 10) "5 =< inData < 10"else "inData >= 10"}println(resultIf)
//    println("Hello World")}
}

可以看到,因为Scala语言自带语句块返回值,使得代码简洁了不少。

for循环

基本形式:
for(变量<-集合){循环体}
其中的变量不需要声明

object helloWorld {def main(args: Array[String]): Unit = {for(i<-1 to 10){println(i)}}
}

for 可以返回一个集合,使用yield

object helloWorld {def main(args: Array[String]): Unit = {var j = for(i<-1 to 10 if i%2==1; if i!= 7) yield iprintln(j)}
}

这样就j就是输出结果的一个集合。

for 嵌套
写法1:

object helloWorld {def main(args: Array[String]): Unit = {for(i<-2 to 5){for (j<-6 to 8) println(i * j)}}
}

输出:
12
14
16
18
21
24
24
28
32
30
35
40

写法2(scala风格):

object helloWorld {def main(args: Array[String]): Unit = {var t = for(i<-2 to 5; j <-6 to 8) yield i*jprintln(t)}
}

Vector(12, 14, 16, 18, 21, 24, 24, 28, 32, 30, 35, 40)
for 嵌套中的守卫可以进行可见变量的操作

while、do while

与其他语言类似
注意:scala没有其他语言相同的break、continue,类似功能可以使用守卫实现。

数组

与Java类似,分为可变和不可变数组,默认是不可变数组,初始化后长度不可变。

Map映射

键值对的集合。
[name:“张飞”, age:15, Gender:m]
两个Map相加[age:20]+[age:30] = [age:50]

就是键相同能够进行值的相加,这点用于词频统计非常方便。

tuple元组

圆括号里的数据,可以是不同的数据类型。
访问元组中的元素
使用._下标(从1开始) 进行索引
在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...