定义变量和逻辑判断语句

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. dda的fpga实现(转载)

    The general approach using DDAs will be to simulate a system of first-order differential equations, ...

  2. drone 学习四 几个有用的命令

    1. 安装cli 工具 linux curl -L https://github.com/drone/drone-cli/releases/download/v0.8.5/drone_linux_am ...

  3. goreman 多进程管理工具

    Linux下多进程管理工具对开发和运维都很有用,常见的功能全面的主流工具主要有monit.supervisor.不过开发中使用则推荐轻量级小工具goreman 举个例子:coreos的etcd就是使用 ...

  4. DZ X3 和 ECshop 通过uc_server实现会员同步整合教程.

    会员数据整合是实现商城和论坛系统共享会员数据.论坛系统注册会员整合后可直接在商城登陆.现以本人社区为例.本人社区采用DZ最新的X3.1 商城采用的ECshop最近的V2.7.3 现在想把两个模板整合在 ...

  5. [LeetCode系列]链表环探测问题II

    给定一个链表头, 探测其是否有环, 如果没有返回NULL, 如果有返回环开始的位置. 环开始的位置定义为被两个指针指向的位置. 算法描述: 1. 快慢指针遍历, 如果到头说明无环返回NULL, 如果相 ...

  6. Mongodb简单介绍安装

    具体详细内容,请查阅 Mongodb官方文档 一.简单介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. M ...

  7. Linux VPS上DenyHosts阻止SSH暴力攻击

    2009年07月23日 下午 | 作者:VPS侦探 现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议vps主机的空间,尽量设置复 ...

  8. POJ 3684 Physics Experiment(弹性碰撞)

    Physics Experiment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2936   Accepted: 104 ...

  9. Java-Runoob:Java Scanner 类

    ylbtech-Java-Runoob:Java Scanner 类 1.返回顶部 1. Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Sc ...

  10. OSGi学习-总结

    本文是osgi实战一书的前几章读书总结 1.  OSGi简介 Java缺少对高级模块化的支持,为了弥补Java在模块化方面的不足,大多数管理得当的项目都会要求建立一整套技术,包括: 适应逻辑结构的编程 ...