一, 基本数据类型

1, scala的数据类型和java类似, 不同的是scala中所有的类型都是引用类型的

Byte
Short
Int
Long
Char
Float
Double
String
Boolean
Unit  相当于 void, 用作不反回任何结果的
ANY  相当于java object

2, string 处理, 字符串定义

一般使用双引号进行定义,    val str = "abc"

如果想保持原样输出, 可以使用 ''' 进行定义

val longStr = ''' type: abc
method: get'''

字符串的格式化输出

// 字符插入器
println(s“$DATE is very nice”)  // 使用 s“”,
println(s"${student.name}")    // 可以传入任意表达式
println(s" ${1 + 1}")        // 任意表达式 // 字符串插入
println(f"$name%s is good boy")  // 使用 f“%name%s”
printf("%s is good boy", name")  // 使用 printf(“%s”, name)
printf("%4.2f. ", price)      // 小数点后保留 2位

3, 变量定义

val: 用于定义常量, 定义后的值不可改变, 必须给初始值

val name : String = “abc”

可以不写变量类型 , 使用自动推断

定义 Unit, 相当于void

val s: Unit = ()

var: 用于定义变量

var num: Int = ‘a’

发生了隐式转换

二, 运算符操作

3, 运算符操作

scala中所有的运算符都以方法的形式被调用, 所有的运算符都可以被重载

var count = a + b
在scala中会被转换成 var count = (a).+(b) 的形式

4, 对象比较

scala中的比较是基于内存比价的, 而java中是基于引用进行比较的

三, 结构控制

1),  if

可以返回值, 条件表达式的值返回给变量

val result = if (a > b)  else 0
val result = if (a > b) 1 else if (i ==8) i else 0

如果没有任何值返回, 会默认返回 (), 也就是 Unit (AnyVal)

2, while循环

def gcdLoop(x: Long, y: Long): Long = {
var a = x
var b = y
while( a != ) {
val temp = a
a = a * b
b = temp
}
b
}

3, do..while 循环

var line = ""
do {
line = readLine()
println(line)
} while (line != "")

4, 使用if, 代替while循环

减少var变量的定义, 同时程序表达能力更强

def gcdLoop(x: Long, y: Long): Long = if (x = ) x else gcdLoop(y, x * y)

5, for循环使用

先认识下生成器: <-

for (file <- fileSet) println(file)
// 遍历出来的元素

fileSet的值会依次赋值给file, 然后打印出来

for (i <-  to )
println( arr(i) ) for (i <- 1 until 6)
  println( arr(i) )

"to" 会包含1-5的值, “until” 不包含 5,

嵌套for循环

 def for_for = {
for (i <- to ; j <- to ) {
if (j == ) println(i * j)
else print(i * j + " ")
}
}

for循环中可以使用if进行判断

for (file <- fileSet if file.getName.endsWith(".scala") {
println(file)
}

多重嵌套循环

def grep(pattern: String) =
for (
file <- filesHere
if file.getName.endsWith(".scala");
line <- fileLines(file)
if line.trim.matches(pattern)
) println(file +": "+ line.trim)
grep(".*gcd.*")

scala-02-基本数据类型-string-分支循环的更多相关文章

  1. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  2. JS 01 变量_数据类型_分支循环_数组

    点击直通车↓↓↓ 数据类型及数据类型的手动转换 数组 一.概念 JavaScript(JS)是一种基于对象和事件驱动.且可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执 ...

  3. 第十九节:Java基本数据类型,循环结构与分支循环

    基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型. 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 ...

  4. day2学python 数据类型+深浅拷贝+循环

    数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3) ...

  5. java基础二 分支循环

    分支循环:    if...    if...else...    if...else if...    if...else if...else...    switch...case...defau ...

  6. C#数据类型-string

    string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring.Split).蹂躏(Join)... 而现在C#数据类型string要“翻身闹革命”了,它几乎无 ...

  7. python_分支循环

    什么是分支+循环? --不同条件进行不同逻辑处理            -- 分支 --满足条件进行反复相同逻辑处理     -- 循环 分支的形式? -- if 条件:  执行体   else: 执 ...

  8. 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告

    一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...

  9. JS基础_数据类型-String类型

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. Vue 分支循环

    分支循环 在Vue中,分支循环也是使用标签属性指令完成的,这一点与后端模板语法不太相同. v-for 下面是通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...

随机推荐

  1. POJ3666 线性dp_离散化_贪心

    POJ3666 线性dp_离散化_贪心 就DP而言这个题不算难,但是难就难在贪心,还有离散化的思想上 题目大意:n个土堆,问你最少移动多少单位的图,可以使得这n个土堆变成单调的 dp[i][j]表示前 ...

  2. oc门

    OC门电路,即集电极开路输出结构门电路,电路结构图为:

  3. Android-Kotlin-代理和委托

    代理和委托,在生活中的案例有很多: 例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我, ...

  4. Ubuntu下SVN安装和配置

    一.SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目录 $ sudo mkdir /home/xiaozhe/svn $ cd /home ...

  5. apollo broker 启动流程

    1.下载Apollo服务器,下载后解压,然后运行apache-apollo-1.6\bin\apollo.cmd,输入create mybroker(名字任意取,这里是根据官网介绍的来取的)创建服务器 ...

  6. INDEX--从数据存放的角度看索引

    测试表结构: CREATE TABLE TB1 ( ID ,), C1 INT, C2 INT ) 1. 聚集索引(Clustered index) 聚集索引可以理解为一个包含表中除索引键外多有剩余列 ...

  7. zabbix_server 报警

    ---恢复内容开始--- 记一个zabbix报警. zabbxi版本   zabbix_server监控报警 zabbix busy unreachable poller processes  mor ...

  8. 【BZOJ3709】 [PA2014]Bohater(贪心)

    传送门 BZOJ Solution 考虑如果可以回血肯定要打,那么就是按照伤害值从小到大排个序能打就打,不能打就\(NIE\). 接着看不能够回血的,emmm,把这个过程反着看一下就是打一个怪扣\(a ...

  9. Linux常用命令 - ls

    目录 Linux常用命令-ls 简介 ls -F ls -a ls -R ls -l 后记 Linux常用命令-ls 简介 ls主要用于显示文件和目录列表.作为最常见的Linux命令,大家应该都不会陌 ...

  10. CSS3标签显示模式

    HTML标签一般分为块标签和行内标签两种类型,它们也称块元素和行内元素.具体如下: 块级元素(block-level) 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属性,常 ...