Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。

根据David Rupp在博客中的说法,Scala可能是下一代Java。

与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。

Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、局部套用(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。

 

Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java和.NET互操作。

 

Scala可以与Java互操作。它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。

下面我就为大家持续编写一些scala命令:

scala下载地址:http://www.scala-lang.org/download/2.12.1.html

首先我下载了scala,解压到D盘的ruanjian文件夹里,dos窗口运行:

《变量》

scala> var i=1
i: Int = 1

scala> var j:Int=2
j: Int = 2

scala> var s:String="abc"
s: String = abc

//var为变量;val为常量,不可变:

scala> var i=2
i: Int = 2

scala> i=3
i: Int = 3

scala> val j=2
j: Int = 2

scala> j=3
<console>:12: error: reassignment to val
       j=3
        ^

《操作符重载》

scala> var a=1
a: Int = 1

scala> var b=2
b: Int = 2

scala> a+b
res0: Int = 3

//加号是一个方法名
scala> a.+(b)
res1: Int = 3

//for循环

scala> var s="abc"
s: String = abc

scala> for(i<-s){println(i)}
a
b
c

《定义数组》

scala> var arr=Array(1,2,3,4,5)
arr: Array[Int] = Array(1, 2, 3, 4, 5)

scala> for(i<-arr){println(i)}
1
2
3
4
5

//泛型用[ ]不用 < >

scala> var arr=Array[String]("a","b","c")
arr: Array[String] = Array(a, b, c)

//方法,函数区别
scala> var a=Array(1,2,3,4)
a: Array[Int] = Array(1, 2, 3, 4)
//将一个int数组中的每个值 +1 后再生成一个数组
scala> a.map(_+1)   //原数组不动,生成新的数组
res2: Array[Int] = Array(2, 3, 4, 5)

//将偶数查出,再乘以100

scala> a.filter(_%2==0)
res3: Array[Int] = Array(2, 4)

scala> a.filter(_%2==0).map(_*100)
res4: Array[Int] = Array(200, 400)

《定义方法》

// 关键字def,方法名,参数,返回类型,返回结果
scala> def main(){println("1,2,3")}
main: ()Unit

//Unit 相当于 void

scala> def m(a:Int,b:Int):Int=a+b
m: (a: Int, b: Int)Int

《定义函数》
scala> val k=(a:Int,b:Int)=>a+b
k: (Int, Int) => Int = $$Lambda$1155/1157751940@1727aa28

scala> k(2,3)
res9: Int = 5

//数组内每个元素*100

scala> val k=Array(1,2,3)
k: Array[Int] = Array(1, 2, 3)

scala> k.map(_*100)
res12: Array[Int] = Array(100, 200, 300)

//函数与方法的区别,函数可以当作参数传入方法中

scala> val k=(i:Int,j:Int)=>{i+j}
k: (Int, Int) => Int = $$Lambda$1160/1891600388@20834041

scala> k(2,3)
res13: Int = 5

//演化过程

scala> val k=Array(1,2,3,4)
k: Array[Int] = Array(1, 2, 3, 4)

scala> arr.map(_+1)
res19: Array[Int] = Array(2, 3, 4, 5)

scala> k.map((i:Int)=>i+1)
res16: Array[Int] = Array(2, 3, 4, 5)

scala> k.map(i=>i+1)
res17: Array[Int] = Array(2, 3, 4, 5)

未完待续~~

如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击下方的【好文要顶】按钮【精神支持】,因为这两种支持都是使我继续写作、分享的最大动力!

Scala:scala的一些简单操作命令的更多相关文章

  1. vim简单操作命令

    vim简单操作命令: 开启编辑:按“i”或者“Insert”键 退出编辑:“Esc”键 退出vim:“:q” 保存vim:“:w” 保存退出vim:“:wq” 不保存退出vim:“:q!” 查看当前系 ...

  2. Hadoop学习(8)-scala环境配置及简单使用

    学习scala的原因主要是因为以后要学习spark. scala是运行在java虚拟机上的,它是一种面向对象和函数式编程结合的语言,并兼容java程序 相对于java更简单 安装scala前提你要保证 ...

  3. scala安装教程及简单配置

    本文将介绍以下内容:Windows下安装scala运行环境,安装编译工具并简单配置,实现著名的“Hello,World". 一,Windows下安装scala运行环境 1.配置jdk,因为s ...

  4. scala中的闭包简单使用

    object Closure { /** * scala中的闭包 * 函数在变量不处于其有效作用域内,还能够对变量进行访问 * * @param args */ def main(args: Arra ...

  5. scala 中List的简单使用

    /** * scala 中List的使用 * */ object ListUse { def main(args: Array[String]): Unit = { def decorator(l:L ...

  6. Scala 方法与函数简单记录

    /** * Scala 方法与函数 * Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法 */ o ...

  7. Scala之Calendar,SimpleDateFormat简单用法

    package com.dingxin.entrance import java.text.SimpleDateFormat import java.util.{Calendar, Date} /** ...

  8. [Scala]Scala学习笔记四 类

    1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为 ...

  9. [Scala]Scala学习笔记二 数组

    1. 定长数组 如果你需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val str ...

随机推荐

  1. Redis性能调优

    Redis性能调优 尽管Redis是一个非常快速的内存数据存储媒介,也并不代表Redis不会产生性能问题.前文中提到过,Redis采用单线程模型,所有的命令都是由一个线程串行执行的,所以当某个命令执行 ...

  2. python update from 2.6 to 2.7

    1 .wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 2.tar -jxvf Python-2.7.3.tar.bz2 &am ...

  3. python 保存csv文件

    利用pandas库, 将numpy的array数据保存成csv格式的文件: import pandas as pd import numpy as np data = pd.read_csv('C:\ ...

  4. 51NOD 1013(3的幂的和)

    题目链接:传送门 题目大意:求(3^0+3^1+3^2+3^3+...+3^n)%1e9的值 题目思路:乘法逆元裸题 #include <iostream> #include <cs ...

  5. 《从零开始学Swift》学习笔记(Day54)——抛出错误

    原创文章,欢迎转载.转载请注明:关东升的博客 能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误. ...

  6. linux时间格式化

    echo `date +'[%Y-%m-%d %H:%M:%S]'`

  7. Html5-draggable元素拖动

    Html5元素拖动 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖动 ...

  8. Pycharm创建Django admin用户名和密码

    1.Tools>Run manage.py Task 2.依次输入: makemigrations migrate createsuperuser 如: manage.py@production ...

  9. 2015-03-22——js常用其它方法

    Function Function.prototype.method = function (name, func) {    this.prototype[name] = func;  //此时th ...

  10. JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1.    JSP模板元素:JSP中HT ...