文章目录

  • 1. var 变量,val常量
  • 2. 分支、循环
  • 3. 函数、方法
  • 4. 闭包

学自 https://www.runoob.com/scala/scala-tutorial.html

1. var 变量,val常量

scala 语句 用 ; 或者 \n 分句

object HelloWorld { // 类名跟文件名一致def main(args: Array[String]):Unit = { // Unit 相当于 voidprintln("Hello World!")var myVar : String = "Foo"val myVal : String = "Too"myVar = "hello"// myVal = "world" // val 相当于常量,不能再次赋值val a, b, c = 100 // 不能分别赋值println(a,b,c) //(100,100,100)var pa = (40, "foo")println(pa) // (40,foo)

2. 分支、循环

  • 跟 java、 c++ 很像
        if(a < 200)println("a < 200")else if(a == 200)println("a == 200")elseprintln("a > 200")var n = 10while(n > 0){println(n)n -= 1}n = -1do{println(n)n -= 1}while(n > 0)for(x <- 1 to 10){println(x) // 包含结束的数}for(x <- 1 to 3; y <- 1 to 3){println(x, y) // 双重循环}var numList = List(100,2,3,4,5)for(a <- numList){println(a)}// 过滤元素for(a <- numList if a < 5; if a != 3){println(a)}// for yield : for 的返回值作为变量存储var returnVal = for{a <- numList if a < 5; if a != 3} yield afor(a <- returnVal)println(a)
  • 特有的 break 方式 Breaks.breakable{}
        import scala.util.control._val loop = new Breaksloop.breakable{for(a <- numList){println(a)if(a == 3)loop.break}}println("after break")

3. 函数、方法

        // val 定义函数, def 定义方法class Test{def method(x:Int) = x + 3 // 多行语句,可用 = {。。。}val func = (x:Int) => x + 3}var obj = new Test()println(obj.method(2)) // 5println(obj.func(2)) // 5// 可变参数def printString(s : String*) = {for(si <- s)println(si)}printString("hello","michael","scala");//指定参数,默认参数def addInt(a:Int, b:Int=2, c:Int=3) : Int = {var sum = 0sum = a+b+cprintln(a,b,c)return sum}println(addInt(1)) // 6// 匿名函数var mul = (x:Int, y:Int) => x*yprintln(mul(3,4))var userDir = () => {System.getProperty("user.dir")}println(userDir())// 偏应用函数是一种表达式,你不需要提供函数需要的所有参数// 只需要提供部分,或不提供所需参数import java.util.Datedef log(date : Date, message : String) = {println(date + "-----" + message)}val date = new Dateval logWithDateBound = log(date, _ : String)logWithDateBound("message1")Thread.sleep(1000)logWithDateBound("message2")Thread.sleep(1000)logWithDateBound("message3")

4. 闭包

        // 闭包var factor = 3val multi = (i : Int) => i*factorprintln(multi(5)) // 15factor = 2println(multi(5)) // 10}
}

Scala 入门1(变量、分支循环、函数)相关推荐

  1. python变量/分支/循环/数组/列表/元组/序列

    最近比较流行python,于是我这种从不赶潮流的人也决定跟一把潮流.工作原因学习时间有限,好容易挤着时间看了一部分网上的视频,却被劝说没什么用处,我们就是靠java吃饭的.当然多学一种语言也不会有什么 ...

  2. C语言入门第二章-分支循环语句

    分支循环语句 文章目录 一.语句是什么? 二.分支语句 三.循环语句 四.转向语句 一.什么是语句? 下面介绍的是控制语句:(分号隔开的就是一个语句) 控制语句用于控制程序的执行流程,以实现程序的各种 ...

  3. Java基础学习笔记(基本规范、变量定义、运算符、分支/循环结构、函数)

    文章目录 Java概述与环境搭建 Java历史 Java语言特点 Java执行机制 安装jdk 环境变量配置 乱码问题解决 基本规范 简单Java代码 编译运行 注释 语法规则 变量类型 声明方式 基 ...

  4. array函数参数 scala_3小时Scala入门

    〇,编程环境 1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接. 一,算术运算 二,输入输出 输出:println,print,prin ...

  5. scala 环境搭建 变量 值 数据类型 元组 表达式块 语句 函数 柯里化 集合 面向对象 隐式转换

    scala (scalable的简写) scala是一个比较冷门的语言,不太被人们所知道 为什么这么冷门的语言现在被我们使用 很多的大数据的项目的源码是是用scala语言编写的. 因为大数据技术不断被 ...

  6. 九阴真经--scala入门+变量+数据类型+运算符

    一.入门 Spark由scala编写,为后续学习Spark打基础 scala基于java进行开发,把scala代码编译成class文件,运作在jvm上 scala是一种多范式.支持面向对象和函数式编程 ...

  7. Scala入门到精通——第十三节 高阶函数

    本节主要内容 高阶函数简介 Scala中的常用高阶函数 SAM转换 函数柯里化 部分应用函数 1. 高阶函数简介 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返 ...

  8. Scala入门到精通——第五节 函数、高阶函数与闭包

    本节主要内容 (一)函数字面量(值函数) (二)匿名函数 (三)函数的简化 (四)函数参数 (四)闭包 函数字面量(值函数) 函数字面量(function literal),也称值函数(functio ...

  9. Scala入门到精通——第五节 函数与闭包

    本节主要内容 (一)函数字面量(值函数) (二)匿名函数 (三)函数的简化 (四)函数参数 (四)闭包 函数字面量(值函数) 函数字面量(function literal),也称值函数(functio ...

  10. scala闭包 变量_Scala闭包,自由和绑定变量,匿名函数

    scala闭包 变量 A closure can be defined as the function whose return value depends on the value of one o ...

最新文章

  1. 2022-2028年中国电容器电子薄膜行业市场研究及前瞻分析报告
  2. Transformers 研究指南
  3. 如何入门生信Linux
  4. Appcan关闭主窗口
  5. php7.1解压包安装,【Swoole】php7.1安装swoole扩展
  6. gui窗口遮挡算法_基于 C 语言开发的 GUI 框架
  7. MySql数据库索引底层数据结构
  8. SpringBoot自学汇总
  9. html5背景图片上放按钮,html5自定义video标签的海报与播放按钮
  10. linux c之用fwrite和fread实现文件的复制
  11. Oracle数据库基本概念理解(3)
  12. 职称类计算机论文,计算机类职称论文发表(2)
  13. Redis工作笔记-Set类型
  14. proxomitron 个人代理工具
  15. Spring Boot集成Redis缓存之模拟高并发场景处理
  16. PyQt5 环境搭建+配置+怎样运行生成的.py程序
  17. MySQL事务ACID实现原理
  18. 华为linux配置ip地址命令是什么,华为S5700基础配置命令
  19. [NOIP2006] 能量项链
  20. Vue2.0七——生命周期

热门文章

  1. Python 内置模块之 asyncio(异步iO)
  2. 五个温度带的分界线_女神建筑师在拿破仑故乡打造的海景别墅,超美!超有温度!【环球设计2225期】...
  3. Colemak布局的实现 Window+Linux+Android
  4. Flask 模板 之 变量和过滤器
  5. 【python】list append()和extend()区别
  6. QT:QObject 简单介绍
  7. 华为软件研发面试题1
  8. python查询斐波那契数列通项公式_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...
  9. PHP+Ajax点击加载更多列表数据实例
  10. shell 需要注意的点