01scala环境搭建和基础
1.环境搭建
1.下载安装jdk1.7以上版本,并进行环境变量的配置
2.下载scala-2.10.4.msi,安装后进行环境变量的配置
3.下载scala-SDK-4.1.1-vfinal-2.11-win32.win32.x86.zip,解压双击运行
2.scala基础
1.println 控制台输出 readLine 控制台输入
2.方法的定义:
def 方法名 (参数名:参数类型):返回值类型={
方法体
}
注意:
1.如果没有返回值,可以省略
2.方法调用 方法名(参数) ,如果没有参数,可以省略()
3.方法的最后一行通常作为函数的返回值
3.for循环语句:
for(变量名 <- 集合名){操作}
4.集合操作
1.Tuple 创建(元素1,元素2,元素3) 角标从1开始
2.Array 创建 Array(元素1,元素2)
3.Map 创建 Map(键 -> 值,键->值)
5.文件操作
val file=Source.fromFile("F:\\工作\\项目\\china_life.sql")
val file2=Source.fromURL("http://www.baidu.com")
for(line <- file2.getLines()) println(line)
3.控制结构
1.scala并没有提供break或continue语句来退出循环,当需要使用break时可以使用以下三种方式:
1.使用boolean来控制循环
2.使用嵌套信息,在从函数中使用return
3.使用Breaks对象的break方法
import scala.util.control.Breaks._
for(i<-1 to 10){
for(j<-10 to 20)
println(i,j)
if (i==5) break
}
2.高级for循环 for(i<-1 to 3 if i !=2;j<-1 to 3 if i!=j) println(i,j) //(1,2),(1,3),(3,1),(3,2)
for推导式 var a=for(i <- 1 to 10) yield i%2 //Vector(1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
3.函数定义时必须给出所有参数的数据类型,但是只要不是递归调用,就不需要指出返回类型
def fac(n:Int): Int = if(n<=0) 1 else n*fac(n-1)
1.默认参数和带名参数:
def decorate(str:String,left:String="[",right:String="]")=left+str+right
println(decorate("tom")) //[tom]
println(decorate("tom", "<<")) //<<tom]
println(decorate(right="<", str="tom")) //[tom<
2.可变参数:
def sum(nums:Int*)={
var result=0
for(num <-nums) result+=num
result
}
此时参数不能为一个集合类型,如果想把集合中的元素供该方法使用可以使用 【集合:_*】 的方式进行传入
sum(1 to 10:_*) //55
3.过程:不返回值的函数的特殊表示法,函数体包含在花括号中间,但没有前面的=,返回值类型就是Unit
def box(s:String){
var border = "-"*s.length+"--\n"
print(border+"|"+s+"|\n"+border)
}
4.懒值:在变量前添加lazy修饰符,将延迟变量内容的加载,直到变量被首次访问时才被加载
lazy val file=Source.fromFile("F:\\工作\\项目\\china_life.sql") //即使所指定的文件不存在,只要不使用变量file,程序就不会报错,但如果去掉lazy,就会立即报错
01scala环境搭建和基础的更多相关文章
- Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串
一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...
- 【入门教程】kafka环境搭建以及基础教程
问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有 ...
- JavaSE 学习笔记01丨开发前言与环境搭建、基础语法
本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...
- Dubbo源码学习--环境搭建及基础准备(ServiceLoader、ExtensionLoader)
环境搭建 Github上下载Dubbo最新发布版本,楼主下载版本为2.5.7. cd到源码解压目录,maven编译,命令为: mvn clean install -Dmaven.test.skip 生 ...
- Android 环境搭建、基础窗口window/Mac
1.五步搞定Android开发环境部署--非常详细的Android开发环境搭建教程 2.Android开发学习之路--MAC下Android Studio开发环境搭建 4.Android常用开发工具以 ...
- python3之环境搭建以及基础语法
早些时候,有一段时间吧,为了想免费下载网易云的收费音乐,也是翻了下python的教程的,语法方面没细致地去看,跟java.php.javascript这些都大同小异,也是面向对象的.那么,近期准备快速 ...
- Linux环境搭建及基础操作
一.Linux环境搭建 1.安装虚拟机软件(VMWare,Parallel) 虚拟机的作用:将本来不是适合当前操作系统的分区虚拟化成适合当前操作系统的分区格式 2.新建虚拟机: 类似买了一台新的电脑, ...
- Python基础入门(1)- Python环境搭建与基础语法
Python编程环境搭建 Python环境搭建 官网下载:https://www.python.org/ python --version PyCharm下载安装 安装 官网下载:https://ww ...
- Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo
前言 使用C#开发动画,绘图性能跟不上,更换方案使用Qt开发Qt的控件制作成OCX以供C#调用,而activex则是ocx的更高级形式. QtCreator是没有Active控件项目的,所有需要 ...
随机推荐
- paper 92:Lena与图像处理
如果你是个数字图像处理技术的研究人员,或这方面的工程师, 想必对这位戴有羽状帽饰的美女不会感觉陌生.我第一次在国际知名的学术性刊物上见到这位美女时,不禁叹为天人,毕竟在这样严肃的学术期刊上,还从未出现 ...
- WCF和Web Service的 区(guan)别(xi)
参考文献:http://social.microsoft.com/Forums/zh-CN/c06420d1-69ba-4aa6-abe5-242e3213b68f/wcf-webservice 之前 ...
- logstash中的redis插件
redis作为logstash中的官方broker,既有input插件,还有output插件. redis input插件 data_type属性: 有三种类型, list -> BLPOP - ...
- Oracle存储过程总结
1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1( para1 varchar2, para2 out varchar2, para3 in ...
- SQL SERVER: 合并相关操作(Union,Except,Intersect) - 转载
SQL Server 中对于结果集有几个处理,值得讲解一下 1. 并集(union,Union all) 这个很简单,是把两个结果集水平合并起来.例如 SELECT * FROM A UNION SE ...
- xcode简介
Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式.Xcode 具有统一的用户界面设计,编码.测试.调试都在一个简单的窗口内完成. Xcode前身是继承自N ...
- HTML5游戏引擎Phaser初体验
首发:个人博客,更新&纠错&回复 一个小小的游戏在这里,试试看能不能过关?提示一下,方向键走路,空格键发炮,每发炮弹消耗12个积分,变大情况下可以发炮. 每秒60次的循环重绘,在其中判 ...
- 鸟哥的linux私房菜学习记录之bash
当你对计算机输入一个指令时,bash会将指令传送给核心kernel,核心再去调用相关的程序,启动硬件. 如果直接让用户操作操作系统,可能会造成系统的崩溃,所以操作系统通过应用程序来让用户操作系统即壳程 ...
- 161028、Nginx负载均衡实现tomcat集群方案简要小结
重点两部分:一.负载均衡二.tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问. Nginx是一个常用的 ...
- Linux Runtime PM介绍【转】
转自:http://blog.csdn.net/wlwl0071986/article/details/42677403 一.Runtime PM引言 1. 背景 (1)display的需求 (2)系 ...