定义变量和逻辑判断语句

package com.zy.scala

import scala.collection.immutable

object ScalaDemo {
def main(args: Array[String]): Unit = {
//定义变量-------------------------------------------
// var 定义的变量是可变的
var str1: String = "111"
// 使用 val 定义的变量值是不可变的,相当于 java 里用 final 修饰的变量 scala鼓励使用val
val str2: String = "222" //定义块表达式
val a = 10
val b = 20
//在 scala 中{}中包含一系列表达式,块中最后一个表达式的值就是块的值
//下面就是一个块表达式
val result: Any = {
val c = b - a
val d = b - c
d //块中最后一个表达式的值
}
//result 的值就是块表达式的结果
println(result) //条件表达式----------------------------------------
//if else的使用
val x = 1
val y = if (x == 1) "111" else "222"
println(y) //if else if else
val z = if (x > 1) "111" else if (x < 1) "222" else false
println(z) //循环
//for(i <- 表达式),表达式 1 to 10 返回一个 Range(区间)
//每次循环将区间中的一个值赋给 i
for (i <- 1 to 10)
println(i) //for(i <- 数组)
val arr = Array("a", "b", "c")
for (i <- arr)
println(i) //高级 for 循环
//每个生成器都可以带一个条件,注意:if 前面没有分号
for (i <- 1 to 3; j <- 1 to 3 if i != j)
print((10 * i + j) + " ")
println()
//for 推导式:如果 for 循环的循环体以 yield 开始,则该循环会构建出一个集合
//每次迭代生成集合中的一个值
val v: immutable.IndexedSeq[Int] = for (i <- 1 to 10) yield i * 10
println(v)
}
}

方法和函数

package com.zy.scala

object FunctionDemo {
def main(args: Array[String]): Unit = {
//方法和函数-------------------------------------- //定义方法 def 函数名(参数列表):返回值类型={方法体}
def method1(x: Int, y: Int): Int = {
x * y
} //调用方法
val a: Int = method1(3, 2)
println(a) //定义函数
val function1 = (x: Int, y: Int) => {
x + y
}
//调用函数
val b: Int = function1(1, 2)
println(b) //定义一个方法
//方法 m2 参数要求是一个函数,函数的参数必须是两个 Int 类型
//返回值类型也是 Int 类型
def m1(f: (Int, Int) => Int): Int = {
f(2, 6)
} //定义一个函数 f1,参数是两个 Int 类型,返回值是一个 Int 类型
val f1 = (x: Int, y: Int) => x + y
//再定义一个函数 f2
val f2 = (m: Int, n: Int) => m * n //调用 m1 方法,并传入 f1 函数
val r1 = m1(f1)
println(r1)
//调用 m1 方法,并传入 f2 函数
val r2 = m1(f2)
println(r2) //将方法转换成函数,只需要在方法的后面加上一个下划线
var f3 = m1 _
val r3: Int = f3(
f1
)
println(r3)
}
}

Scala基础:定义变量和逻辑判断语句以及方法和函数的更多相关文章

  1. 【scala】定义变量和函数

    1.定义变量 Scala的变量分为两种,val和var. val跟java的final变量类似,一旦初始化就不能被重新赋值. var类似于java的非final变量,在整个生命周期内var可以被重新赋 ...

  2. C#基础 - 定义变量,输入输出

    本节课主要讲解C#的发展历史及部分C#语言基础, 主要内容有:控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值       打印,两种数据类型,整形类型转换 本节重点难点:定义变量 ...

  3. C#语言基础——定义变量、变量赋值、输入输出

    第一部分 了解c# 一.C#的定义及其特点 C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.net的应用而开发的语言.它吸收了c++.Visual basi ...

  4. JavaScript基础——定义变量

    在JavaScript中使用变量来临时存储和访问来自JavaScript文件的数据.变量既可以指向简单的数据类型,如数字或者字符串:也可以指向更复杂的数据类型,比如对象. 在JavaScript中定义 ...

  5. 【2017-2-17】C#基础 - 定义变量,输入输出

    1.初学C#. C#是专门为.NET的应用而开发的语言,他吸收了C++.Visual Basic.Delphi.Java等语言的优点,提高了程序开发的效率. 2.Visual Studio.NET的集 ...

  6. python基础之变量以及if语句

    1.变量 1.1定义:变量是一种介质,是将一些值暂时存储在内存中,方便后续程序调用.可将其看作容器但其内部的东西是可变化的. 1.2 变量的命名规则: 1.变量的命名只能由数字,字母,下划线构成. 2 ...

  7. python 函数的定义及调用语法,map 方法,函数嵌套递归

    1.什么是函数    开发程序时候,需要代码执行多次,为了提高编写效率及代码重用性,所以把具有独立功能的代码块组织为一个小模块,给这个功能一个名称,这就是函数.    函数可以使用系统自带的函数也可以 ...

  8. go基础语法-变量定义

    1.基础定义 变量类型在变量名后 var a int var s string 2.定义并赋值 var a,b int = 1,2 var s string="abc" 3.类型推 ...

  9. Scala 基础入门【翻译】

    原文地址 本文只是带你进入 Scala 的世界,包括安装.不可变量 val.可变量 var.定义类.集合(包括列表(list).集(set).映射(map))以及集合遍历和集合库(能达到并行/并发效果 ...

随机推荐

  1. vue-router教程一(安装篇)

    Installation安装 #直接下载/cdn https://unpkg.com/vue-router/dist/vue-router.js Unpkg.com提供基于NPM的CDN链接.上述链接 ...

  2. MySQL Geometry扩展在地理位置计算中的效率优势

    由于在Geometry中,有相关自带函数和SPATIAL INDEX的性能优化,可以让某些位置计算的效率提升.以下是几种计算方法的效果对比. 1. 数据准备 首先创建一个数据表,这是一个店铺数据表,结 ...

  3. conduit 安装试用

    备注: 测试安装环境使用docker mac 版本(目前版本已经支持kubernetes了) 1. 基本安装 curl https://run.conduit.io/install | bash 配置 ...

  4. 坚持c++,真正掌握c++(4)

    这几天复习了c++primer的第12章类的解说,尽管之前这一章也看了几遍.可是我终究认为书读百遍其义自现,如今我给出一些我学习的心得,欢迎大家一起探讨. 首先,类能够说是c++的灵魂,正由于c++中 ...

  5. bzoj2748(HAOI2018)音量调节

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2748 水得不想写.别忘了-1. #include<iostream> #incl ...

  6. LINUX下多路径的介绍和安装配置(测试未写完)

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来 ...

  7. python的mp3play库试用

    没有见过比这个更小型的库了,下面程序实现的功能:播放音乐,按空格键实现暂停和播放的切换. #coding=utf-8 import mp3play import pythoncom, pyHook i ...

  8. mysql索引相关理解

    1.索引是高效获取数据的数据结构, 2.唯一索引,索引值不重复unique create unique index 索引名 on 表名(字段) alter table 表名 add unique in ...

  9. java 重写 与 重载 用法

    图例: 重写: 其实就是获取其他类 和自己类相同的方法名 来使用 重载: 其实就是创建多个相同的方法名,里面装载不同的参数 重写例子: Super关键字 重载的例子:

  10. 瞎记录java (含this 的用法)

    为类加一个方法: vid 方法名() 或者向下面这样写 给类加一个函数: 引用类里面的方法 引用不同类的方法: 其中 extends 应该是 本类可以去调用其他类里面的方法 的意思