一, 基本数据类型

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. 读《.net设计规范》

    一.影响软件品质的影响有哪些?比如性能.可靠性.安全性.依赖性管理等. 二.客户先行的编程——如果让你把自己的程序库提供的功能描述出来,并让一个开发人员在没有看过该程序库的前提下, 根据他认为该程序库 ...

  2. jQuery如何获取元素及选择器的参考

    获取元素 Jquery当中几乎所有的功能.选择.事件处理等都用到了这个函数.通常用来获取元素,获取到的元素都会被存储为jQuery对象. 例如: 先设定一个id为aaa的div <body> ...

  3. html5打开摄像头并用canvas模拟拍照 - 转

    <video id="video" width="640" height="480" autoplay></video&g ...

  4. bootstrap 警告框多个删除

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. Python自动化开发 - 网络编程

    本节内容 1.客户端/服务器架构 2.OSI七层 3.socket层 4.socket是什么 5.套接字发展史及分类 6.套接字工作流程 一.客户端/服务器架构 即Client/Server架构,包括 ...

  6. [chrome-debug]如何使用chrome调试你的移动设备

    ### usb debug by remote chrome ### https://developer.chrome.com/devtools/docs/remote-debugging ### c ...

  7. unigui结合JS方法

    在js中界面上所有组件都当成html里来控制 1.控制按钮事件 document.getElementById(MainForm.UniButton4.getId()).click(); 这个方法让J ...

  8. WinAPI: sndPlaySound - 播放 wav 文件

    WinAPI: sndPlaySound - 播放 wav 文件 //声明: sndPlaySound(   lpszSoundName: PChar; {声音文件}   uFlags: UINT{播 ...

  9. 第7章 "敏捷+"项目管理

    7.1  导入敏捷项目管理的步骤 1.导入敏捷的步骤 (1).培训 (2).教练与引导 (3).内化 2.敏捷混合型模式 7.2  项目启动与敏捷合同 1.敏捷项目启动 2.敏捷签约模式 在传统项目管 ...

  10. Windows核心编程:第4章 进程

    Github https://github.com/gongluck/Windows-Core-Program.git //第4章 进程.cpp: 定义应用程序的入口点. // #include &q ...