定义变量和逻辑判断语句

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. grpc rust 项目基本使用

    1. 安装依赖(rust 基本依赖就不说了,需要配置环境变量) protoc 参考: https://github.com/google/protobuf/releases/tag/v3.5.1 2. ...

  2. PHP RSA加签的实现过程

    一.得到私钥文件mycert.key 2.从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足) (1)提取密钥对 openssl pkcs12 -in 1.pfx -nocert ...

  3. Linux VPS禁止某个IP访问

    http://www.vpser.net/security/linux-vps-deny-ip.html

  4. ngnix+uwsgi+django 部署mezzanine

    以下是我用ngnix+uwsgi+django 部署mezzanine全过程,其中ngnix+uwsgi这块是看了虫师大神的博客(http://www.cnblogs.com/fnng/p/52686 ...

  5. MFC程序如何修改icon图标

    场景: Visual Studio写MFC应用程序,默认的程序左上角图标是自带的(如下图),虽说也不丑,但是对于程序员来说,还是缺乏个性了. 你知道,C.C++.java系程序员最常干的事情就是定义. ...

  6. MOSS 2013研究系列---Win2008R2 建立域控时候,报密码不符合要求解决办法

    今天远程给Win2008R2装AD域控的时候,突然报如下的错误页面: 修改了密码,将密码强度设置复杂了,但是,仍然会弹出这个错误页面,估计是因为远程账号的关系,于是再网上搜下了一下,找到了一个解决方案 ...

  7. C/S模式与B/S模式的详细介绍

    网络程序开发的两种计算模式--C/S模式与B/S模式.两种各有千秋,用于不同场合. C/S适用于专人使用,安全性要求较高的系统: B/S适用于交互性比较频繁的场合,容易被人们所接受,倍受用户和软件开发 ...

  8. Java开发中所涉及的常用远程调用

    根据<Spring in Action>一书中指出,Java开发中常见的远程过程调用(RPC),常见的有一下四种方式: 1.远程方法调用(RMI) 2.Caucho的Hessian和Bur ...

  9. React组件间信息传递方式

    组件之间传递信息方式,总体可分为以下5种: 1.(父组件)向(子组件)传递信息 2.(父组件)向更深层的(子组件) 进行传递信息  >>利用(context) 3.(子组件)向(父组件)传 ...

  10. 深入浅出 Java Concurrency (9): 锁机制 part 4 锁释放与条件变量 (Lock.unlock And Condition)

    本小节介绍锁释放Lock.unlock(). Release/TryRelease unlock操作实际上就调用了AQS的release操作,释放持有的锁. public final boolean ...