Scala课堂(2):基础(一)

<p>
    <strong style="color: #555555;">这里我们转载<a style="font-weight: inherit; font-style: inherit; color: #0085cf;">Twitter的Scala课堂</a>  ,转载的内容基本来自Twitter的Scala课堂中文翻译,部分有小改动.</strong>
</p>
<p>
    <strong>表达式</strong>
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> 1 + 1
res0: Int = 2</pre>
<p>
    res0是解释器自动创建的变量名称,用来指代表达式的计算结果。它是Int类型,值为2。
</p>
<p>
    Scala中(几乎)一切都是表达式。
</p>
<p>
    <strong>值</strong><br/>你可以给一个表达式的结果起个名字赋成一个不变量(val)。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala>  val two = 1 + 1
two: Int = 2</pre>
<p>
    <strong>变量</strong><br/>如果你需要修改这个名称和结果的绑定,可以选择使用var
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala>  var name = "steve"
name: String = steve

scala>  name = "marius"
name: String = marius</pre>
<p>
    <strong>函数</strong><br/>你可以使用def创建函数.
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> def addOne(m: Int): Int = m + 1
addOne: (m: Int)Int</pre>
<p>
    在Scala中,你需要为函数参数指定类型签名。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> val three = addOne(2)
three: Int = 3</pre>
<p>
    如果函数不带参数,你可以不写括号。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> def three() = 1 + 2
three: ()Int

scala> three()
res0: Int = 3

scala> three
res2: Int = 3</pre>
<p>
    <strong>匿名函数</strong><br/>你可以创建匿名函数。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> (x: Int) => x + 1
res3: Int => Int = <function1></pre>
<p>
    这个函数为名为x的Int变量加1。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> res3(1)
res4: Int = 2</pre>
<p>
    你可以传递匿名函数,或将其保存成不变量。
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala> val addOne = (x: Int) => x + 1
addOne: Int => Int = <function1>

scala>  addOne(1)
res5: Int = 2</pre>
<p>
    如果你的函数有很多表达式,可以使用{}来格式化代码,使之易读。
</p>
<pre class="brush: scala; title: ; notranslate" title="">def timesTwo(i: Int): Int = {
  println("hello world")
  i * 2
}</pre>
<p>
    对匿名函数也是这样的
</p>
<pre class="brush: scala; title: ; notranslate" title="">scala>  { i: Int =>
     |   println("hello world")
     |   i * 2
     | }
res6: Int => Int = <function1></pre>
<p>
    在将一个匿名函数作为参数进行传递时,这个语法会经常被用到
</p>

  

时间: 2024-10-08 16:17:06

Scala课堂(2):基础(一)的相关文章

Scala课堂

Scala课堂(1):概述 Scala课堂(2):基础(一) Scala课堂(3):基础(二) Scala课堂(4):基础(三) Scala课堂(5):基础(四) Scala课堂(6):基础(五) Scala课堂(7):基础(六) Scala课堂(8):集合(一) Scala课堂(9):集合(二) Scala课堂(10):模式匹配和函数组合 Scala课堂(11):类型和多态类型(一) Scala课堂(12):类型和多态类型(二) Scala课堂(13):高级类型(一) Scala课堂(14):

JVM 并发性: Java 和 Scala 并发性基础

处理器速度数十年来一直持续快速发展,并在世纪交替之际走到了终点.从那时起,处理器制造商更多地是通过增加核心来提高芯片性能,而不再通过增加时钟速率来提高芯片性能.多核系统现在成为了从手机到企业服务器等所有设备的标准,而这种趋势可能继续并有所加速.开发人员越来越需要在他们的应用程序代码中支持多个核心,这样才能满足性能需求. 在本系列文章中,您将了解一些针对 Java 和 Scala 语言的并发编程的新方法,包括 Java 如何将 Scala 和其他基于 JVM 的语言中已经探索出来的理念结合在一起.

小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1.SpringBoot2.x课程介绍和高手系列知识点 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_2.SpringBoot2.x依赖环境和版本新特性说明 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3.快速创建SpringBoot应用之手工创建web应用 小D课堂 -

妙味课堂——JavaScript基础课程笔记

集中时间把秒微课堂JS的基础课程看完,并且认真完成了课后练习.感觉在JS方面的技能算是入了个门了.课后练习的作业完成的代码我都汇总在了这里.至于视频课的学习笔记,则记录如下. 第01课JS入门基础_热身课程 写JS的步骤 先实现布局 想出实现原理 了解JS语法 希望把某个元素移除的实现 display: none; 显示为无 visibility: hidden; 隐藏 width \ height 透明度 left \ top 拿与背景色相同的div盖住该元素 利用margin值 …… 获取元

Scala入门到精通——第二十六节 Scala并发编程基础

作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 Scala并发编程简介 Scala Actor并发编程模型 react模型 Actor的几种状态 Actor深入使用解析 本节主要介绍的scala并发编程的基本思想,由于scala在2.10版本之后宣布使用akka作为其并发编程库,因此本节只进行基础性的内容介绍,后面将把重点放在akka框架的讲解上. 1. Scala并发编程简介 2003 年,Herb Sutter 在他的文章 "

scala学习01-scala基础语法

Scala基础 变量声明和使用 val a = 10 var b = 20 函数使用 def hello(a:Int,b:Int):Int{ if(a > b) a else b } while循环 var i = 0; while(i <10){ print(i) i += 1 } for循环 //函数式语言的主要特征就是:函数是头等结构 val a = List(1,2,3) a.foreach(b => println(b))//括号中传入的是函数字面量 //for循环的例子 fo

Scala简介及基础语法

一.scala简介 官网:https://www.scala-lang.org/ Scala语言很强大,集成了面向对象和函数式编程的特点. 运行在JVM(jdk). 大数据中为什么学习scala? spark是scala语言编写. python写spark 挺好的 java写spark 很糟糕(代码实在是太多了) scala写spark 很完美 二.scala特点 1)优雅 框架设计中第一个要考虑的问题就是API是否优雅. 精简的封装. 代码精简(少). 2)速度快 scala语言表达能力强.

Scala详解--------基础知识详解

Chapter1 1.Scala解释器 启动Scala解释器的方法如下: 自己总结的: 1.打开执行命令栏WIN+R  ,输入cmd,在命令行上输入Scala等待启动如下 如上面所示即可启动Scala 2.使用bin内部的启动脚本 找到你所安装Scala的目录,并在Scala的bin文件夹中找到scala.bat文件,打开即可. 以上是我知道的打开方式,另外,可以使用eclipseEE进行安装插件,进行使用,具体的使用情况可以参考上一篇文章. 下面来测试一下Scala编译器的效果吧 测试成功,说

scala入门-02基础知识-&gt;方法

首先在src下的main下的scala下创建一个包为org.scala.base 创建一个scala类名称为HelloWorld.scla 由于main方法要位于object对象中,所以我们创建一个object 名称为HelloWorld 并增加main方法和打印一行内容 接下来 我们在object对象中增加一个方法:printlnHello; PS: 1.函数体的最后一行的值就是整个函数的返回值 2.类型的申明是位于变量或者函数或者类的后面 另一种方式定义方法: 当方法or 函数是无参数时候,