Scala实践1
一、Scala安装和配置
1.1安装
- Scala需要Java运行时库,安装Scala需要首先安装jdk。
- 然后在Scala官网下载 程序安装包
- 根据不同的操作系统选择不同的安装包,下载完成后,将安装包解压到安装目录。将scala安装目录下的bin目录加入到PATH环境变量

完成以上流程后,在命令行输入:scala,进入如下界面: 直接输入scala

1.2Scala编写代码工具:IntelliJ IDEA:
- IntelliJ IDEA安装Scala插件:https://jingyan.baidu.com/article/fec4bce28258c0f2618d8bdb.html
- 在intellij IDEA中新建scala项目,file-》New-》project

下载Scala SDK

在项目中src中直接新建scala class,或者新建scala目录,并将该目录设置为source folders

新建scala class如下:


编辑代码:
object hello {
def main(args:Array[String]): Unit ={
print("hello")
}
}
右键运行,结果如图:

1.3在控制台运行Scala程序
- 在控制台上直接运行scala类

- 在Inetllj IDEA打包scala,在控制台运行

二、Scala入门
2.1scala解释器
开始学习Scala最简单的方式是使用Scala解释器,它是编写Scala表达式和程序的交互式的shell(称为“scala”),
只要在解释器里输入表达式,它就能计算并打印结果值。
- 在命令提示符里输入scala(不限大小写)可以进入解释器

- 在解释器中输入表达式,如1+1,回车后,出现输出信息依次为:自动产生的或许用户定义的名称,冒号及表达式的类型,等号,表达式经计算的结果值。

- 想要在解释器中跨行输入语句的话,只需要一行行的输入,如果没有结束解释器则会在下一行回应一个“|”

发现错误,解释器依旧等待输入,可以按两个回车键取消掉

退出解释器:q或者:quit
2.2变量定义
- Scala声明变量有两种方式,一个用val,一个用var。
- val / var 变量名 : 变量类型 = 变量值。
- val定义的值是不可变的,它不是一个常量,是不可变量,或称之为只读变量。 val类似于Java中的final
val示例:

var示例:

2.3函数定义
函数式语言的主要特征之一是函数是头等结构,下面有Scala函数的基本结构和Scala函数字面量的语法

- 在如上图的函数所示,函数的定义以def开始,然后是函数名,上图的函数名是max,跟着是括号里面带着冒号分隔的参数列表。函数中的每个参数都必须带有前缀冒号的类型标注,因为编译器无法推断函数的参数类型。scala函数的基本结构演示如下图:

注意:在max参数列表的括号后你会看到另一个Int,既是函数返回值类型,在Scala中。同样概念被称作结果类型。
在Java中的void,在Scala写作Unit。
- Scala函数字面量的语法如下图:

Scala实践1的更多相关文章
- Scala实践14
1.Scala的future 创建future import scala.concurrent._ import ExecutionContext.Implicits.global object Fu ...
- Scala实践13
1.隐式参数 方法可以具有隐式参数列表,由参数列表开头的implicit关键字标记.如果该参数列表中的参数没有像往常一样传递,Scala将查看它是否可以获得正确类型的隐式值,如果可以,则自动传递. S ...
- Scala实践12
1.内部类和抽象类型成员作为对象成员 内部类 在Scala中,可以让类将其他类作为成员.这些内部类是封闭类的成员.在Scala中,这样的内部类绑定到外部对象.假设希望编译器在编译时阻止我们混合哪些节点 ...
- Scala实践11
1.1泛型类 泛型类是将类型作为参数的类.它们对集合类特别有用. 定义泛类型:泛型类将类型作为方括号内的参数[].一种惯例是使用字母A作为类型参数标识符,但是可以使用任何参数名称. class Sta ...
- Scala实践10
1.模式匹配 模式匹配是一种根据模式检查值的机制.它是switch(Java中语句)的更强大版本,它同样可以用来代替一系列if / else语句. 句法 匹配表达式具有值,match关键字和至少一个c ...
- Scala实践9
1.特征 Traits用于在类之间共享接口和字段.它们类似于Java 8的接口.类和对象可以扩展特征,但是特征不能被实例化,因此没有参数. 定义一个特征 最小特征只是关键字trait和标识符: tra ...
- Scala实践6
1 if表达式 Scala中if...else..表达式是有返回值的,如果if和else返回值类型不一样,则返回Any类型. scala> val a3=10 a3: Int = 10 sca ...
- Scala实践8
1.1继承类 使用extends关键字,在定义中给出子类需要而超类没有的字段和方法,或者重写超类的方法. class Person { var name = "zhangsan" ...
- Scala实践7
一.类 1.1简单类和无参方法 类的定义通过class关键字实现 scala> class Dog { | private var leg = 4 | def shout(content: St ...
- Scala实践5
一.Scala的层级 1.1类层级 Scala中,Any是所其他类的超类,在底端定义了一些有趣的类NULL和Nothing,是所有其他类的子类. 根类Any有两个子类:AnyVal和AnyRef.其中 ...
随机推荐
- java三大循环结构
用于处理需要重复执行的操作: 根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称为循环体: while:事先不需要知道循环执行多少次: do while:同上,只是至少要执行一次( ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- [转]分布式session的几种实现方式
我们应当对产生的Session进行处理,通过粘性Session,Session复制或Session共享等方式保证用户的体验度. 以下我将说明5种Session处理策略,并分析其优劣性. 第一种:粘性s ...
- Acegi框架介绍
开发四年只会写业务代码,分布式高并发都不会还做程序员?->>> 概述 对于任何一个完整的应用系 统,完善的认证和授权机制是必不可少的.Acegi Securit ...
- SpringMVC 非注解配置
web.xml配置: <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>o ...
- IdentityServer4 sign-in
原文地址 Sign-in IdentityServer 代表 user 分配token之前,user必须登录IdentityServer Cookie authentication 使用 cookie ...
- codeforces 220B . Little Elephant and Array 莫队+离散化
传送门:https://codeforces.com/problemset/problem/220/B 题意: 给你n个数,m次询问,每次询问问你在区间l,r内有多少个数满足其值为其出现的次数 题解: ...
- FreeNOS学习1——系统安装和使用
官网安装教程:http://www.freenos.org/doxygen/index.html 整体思路:在Ubuntu操作系统下,安装qemu虚拟机,然后用虚拟机运行FreeNOS的镜像.以下是详 ...
- Jmeter配置元件——JDBC Connection Configuration参数化
在昨天Jmeter配置元件——CSV DataSet Config参数化一文中,有提到,在参数化时,还可以使用JDBC Connection Configuration配置元件实现,具体如何实现,如何 ...
- blackarch 安装指南
建议直接 www.blackangle.cn/BlackArchGuide.htm v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#de ...