1 了解Scala
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的更多相关文章
- jdb调试scala代码的简单介绍
在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...
- scala练习题1 基础知识
1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等: 2,在scala REPL中,计算3的平方根,然 ...
- 牛顿法求平方根 scala
你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- Scala化规则引擎
1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...
- Scala快速概览
IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...
- Scala Macros - scalamela 1.x,inline-meta annotations
在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...
- Scala Macros - 元编程 Metaprogramming with Def Macros
Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...
- Scala Reflection - Mirrors,ClassTag,TypeTag and WeakTypeTag
反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(express ...
- Scala For Java的一些参考
变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...
随机推荐
- Java HashMap工作原理深入探讨
大部分Java开发者都在使用Map,特别是HashMap.HashMap是一种简单但强大的方式去存储和获取数据.但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.Ha ...
- Oracle 11g Flashback_transaction_query的undo_sql为空解决办法
近日测试的时候发现 flashback_transaction_query中 undo_sql 为空,经查证这个问题是 Oracle 11g 默认把 supplemental logging 禁用了导 ...
- Python转码问题的解决方法
FROM: http://www.jb51.net/article/16104.htm 在Python中,可以对String调用decode和encode方法来实现转码. 比如,若要将某个St ...
- Java三大器之过滤器(Filter)的工作原理和代码演示
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静 ...
- hdu 4865 Peter's Hobby (隐马尔可夫模型 dp)
Peter's Hobby Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- 2、cas4.0 单点登录 之 cas-client
cas4.0 单点登录 之 cas-client cas4.0 单点登录 之 https证书已经做好了证书的准备工作.如今结合cas-server来配置单点登录: 一.安装cas服务端(cas-ser ...
- redux VS mobx (装饰器配合使用)
前言:redux和mobx都是状态管理器,避免父级到子级再到子子级嵌套单向数据流,可以逻辑清晰的管理更新共享数据.(刷新页面redux储蓄数据即消失) 配置使用装饰器(使用高阶函数包装你的组件): n ...
- passwd(总结)
1.当前用户是root root用户修改密码 ,直接 passwd[不要输入当前用户密码] 如果修改其他用户密码,需要 passwd 用户名 如: passwd sc 短短的密码,如123也能通过,因 ...
- 聚类分析算法及SAS实现
聚类分析是用户细分里面最为重要的工具,而用户细分则是整个精准营销里面的基础. 聚类分析方法分为: 层次法:可分为凝聚式和分列式,适用于观测数比较少的情形 1.凝聚式:将每个观测都归为一类,然后每次都将 ...
- mysql 语句要求
mysql 语句不可以有单引号,要把单引号替换为双引号!