1 定义变量

单个变量:var name = "benxintuzi"

等价于  var name : String = "benxintuzi"(即定义变量时可以不显示指定类型,scala会根据数据自动识别)

多个变量:var x, y = 100

val age = 10

说明:var定义变量,val定义常量

2 函数名的自动补全:Tab键

3 Scala的数值类型

与Java一样,Scala有7中数值类型:Byte/Char/Short/Int/Long/Float/Double/Boolean。与Java不同的是,Scala中的数值类型是类,其并不刻意区分基本类型和引用类型,即,你可以这样做:1.toString()-----"1"

在Scala中,对于数值类型之间的转换,不使用强制类型转换,而是使用方法,如:99.44.toInt----99

4 运算符重载

a + b 等价于调用a.+(b),因此1.to(10) 也等价于1 to 10

Scala中并没有提供自增++和自减—,需要使用 += 1  -= 1

5 函数和方法的调用

在Scala中,除了方法之外,还提供了函数,这样无形中会极大地简化编程,例如数学运算函数都存在如下包中:

Import scala.math._     // Scala中的 _ 相当于Java中的 *

当然,导入以scala.开头的包时,scala.可以省略,如上相当于import math._

Scala没有静态方法,不过却有个类似的特性,叫做companion对象,通常每个都带有这个对象,其方法与Java中的静态方法一样

不带参数的Scala方法通常不使用圆括号,如"Hello".distinct

6 apply方法

如同C++中的s[i], Java中的s.charAt(i),在Scala中,只需写s(i)即可,如"Hello"(4)----'o'

其实是调用了一个apply函数,相当于:"Hello".apply(4)

在StringOps类的文档中,apply定义如下:def apply(n : Int) : Char

                                                                   -----源自《快学Scala》Chapter 1

1 了解Scala的更多相关文章

  1. jdb调试scala代码的简单介绍

    在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...

  2. scala练习题1 基础知识

    1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然 ...

  3. 牛顿法求平方根 scala

    你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...

  4. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  5. Scala化规则引擎

    1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...

  6. Scala快速概览

    IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...

  7. Scala Macros - scalamela 1.x,inline-meta annotations

    在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...

  8. Scala Macros - 元编程 Metaprogramming with Def Macros

    Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...

  9. Scala Reflection - Mirrors,ClassTag,TypeTag and WeakTypeTag

    反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(express ...

  10. Scala For Java的一些参考

          变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...

随机推荐

  1. 路由器漏洞复现分析第二弹:CNVD-2018-01084

    1月17日,CNVD公开了D-LinkDIR 615/645/815 service.cgi远程命令执行漏洞(CNVD-2018-01084),freebuf上有前辈写了一篇漏洞复现和poc的文章(h ...

  2. .Net强大的列表控件XPTable [转]

    .Net强大的列表控件XPTable http://blog.csdn.net/bodybo/article/details/7359531 XPTable的大名,想必C#开发的人都有所耳闻,使用下来 ...

  3. 什么是滤波器,滤波器是干嘛用的,IIR和FIR滤波器又是什么?(回答请简洁,别浪费大家时间)

    信号频率筛选器,用于阻挡不需要的信号: 低通滤波用来阻挡某一频率之上的所有信号: 高通滤波用来阻挡某一频率之下的所有信号: 另外还有带通滤波器,带阻滤波器..... 个人理解,就像是个过滤沙子的筛子一 ...

  4. [转载]How to Install Google Chrome 39 in CentOS/RHEL 6 and Fedora 19/18

    FROM: http://tecadmin.net/install-google-chrome-in-centos-rhel-and-fedora/ Google Chrome is a freewa ...

  5. 【共享单车】—— React后台管理系统开发手记:AntD Table高级表格

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  6. 系统重装 如何在PC上安装Mac OS,苹果操作系统

    [苹果系统 无影精品]<精睿 无影技术Mac OS X 中文优化正式会员版V10.14和V10.16>◆ 系统前沿:==================================== ...

  7. 手写 jQuery 框架

    1.测试页面; <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. [Python]BeautifulSoup—HTML解析包

    在用Python写爬虫时,一个常见的操作是对抓下的HTML做分析处理,得到想要的内容.一般的方法为使用Python的re库中.用正則表達式来解析文本.只是这样的方法适用于全部的文本.而针对于特定格式的 ...

  9. 《Android源代码设计模式解析与实战》读书笔记

    1.定义 将对象组合成树形结构以表示"部分-总体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性. 2.使用场景 (1)表示对象的部分-总体层次结构时. (2)从一个总体 ...

  10. 在caffe中用训练好的 caffemodel 来分类新的图片所遇到的问题

    结合之前的博客: http://www.cnblogs.com/Allen-rg/p/5834551.html#3949333 用caffemodel去测试单通道的图像(mnist数据集)时,出现了问 ...