定义变量和逻辑判断语句

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. Mysql-Proxy 读写分离的各种坑,特别是复制延迟时

    延迟问题读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSyncReplicationDesign补丁. 端口问题MySQL-Proxy缺省使用的是4040端口,如果你想透明的把 ...

  2. VS2010 代码前出现虚线

    VS2010 代码前出现虚线的问题,解决方法: 只需要用快捷键:Ctrl+E+S三个组合键就可以让其取消或显示了

  3. bzoj 3779 重组病毒——LCT维护子树信息

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3779 调了很久……已经懒得写题解了.https://www.cnblogs.com/Zinn ...

  4. 10.Python运行Scrapy时出现错误: ModuleNotFoundError: No module named 'win32api'

    1.在命令行输入:scrapy crawl demo(demo为爬虫标识,是唯一的) 2.报错信息如下所示: 3.解决方法:https://github.com/mhammond/pywin32/re ...

  5. 基于Oracle的EntityFramework的WEBAPI2的实现(一)——准备工作

    目前在.net的范围内,好的而且方便的ORM的真的不是很多,与VS集成方便的也就当属EntityFramework(以下简称EF,不知道为什么,总EF这个缩写好不专业).但是,好多公司使用的又是ORA ...

  6. 使用FILE指针读写文件

    http://www.cnblogs.com/Solstice/archive/2011/07/17/2108715.html 看了这篇博客有感而发. 就个人而言我是典型的从C到C++的类型,并且逐渐 ...

  7. JVM内存管理之杂谈(借此也论一论obj=null)

    作为一个程序猿,修炼的过程就犹如玄幻小说中的主角,不仅需要练习各种武技,内气的修炼的一样重要.虽然武技可以迅速的提升主角的实力,但是在内气太差的情况下,根本发挥不出武技的十之一二. 因此,在介绍过设计 ...

  8. SpringMVC中注解控制器及数据绑定

    一.Spring2.5之前,我们都是通过实现Controller接口或其他实现来定义我们的处理器类. 二.Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMap ...

  9. Nginx限制服务地址

    今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案. 我们在使用的时候会遇到很多的恶 ...

  10. 安装Elastix-2.4版本

    首先,下载Elastix地址:http://www.elastix.org,下载里面的2.4版本 第一步:选择安装,Enter 选择语言,默认就行 选择us,默认 选择全部 选择默认分区,点击OK 配 ...