package yjmyzz

import java.io.PrintWriter
import java.util.Date import scala.io.Source object ScalaApp02 { def main(args: Array[String]) {
tupleDemo
println
mapDemo
println
arrayDemo
println
fileWriteAndRead
println(getUrlContent("http://www.cnblogs.com/yjmyzz/")) } /**
* 元组示例
*/
def tupleDemo = {
//val表示常量(相当于JAVA中的final),var表示变量
val tuple = ("jimmy", 100, new Date()) //这写法比c#里的Tuple<T>还简洁
//打印第1,2,3个元素,注意元组下标是从1开始的
println(tuple._1)
println(tuple._2)
println(tuple._3)
} /**
* 数组示例
*/
def arrayDemo = {
var myArr = Array(5, 4, 3, 2, 1) //注意:这里不需要new关键字
for (i <- myArr) println(i)
println
//找出myArr中的偶数
var even = myArr.filter(i => i % 2 == 0) //这语法的简洁性,快赶上C#的LINQ了
for (i <- even) println(i)
println
scala.util.Sorting.quickSort(even) //排序
for (i <- even) println(i)
} //Map示例
def mapDemo = {
var myMap = Map(("jimmy", 1), ("Mike", 2), ("John", 3));
//遍历
for ((k, v) <- myMap) {
println("key:" + k + "\t,value=" + v);
}
println
println("all keys => ")
//遍历key
for (k <- myMap.keys) {
println(k)
}
println
//遍历value
println("all values => ")
for (v <- myMap.values) {
println(v)
}
println
//遍历key和value,还有一种写法(利用占位符号"_")
println("all keys => ")
for ((k, _) <- myMap) println(k)
println
println("all values => ")
for ((_, v) <- myMap) println(v)
} /**
* 文件读写示例
*/
def fileWriteAndRead = {
val fileName = "scalaTest.txt" //写文件
var writer = new PrintWriter(fileName)
writer.write("hello scala\n")
writer.write("hello spark")
writer.close() //读文件
var fileContent = Source.fromFile(fileName);
println(fileContent.mkString) } /**
* 获取网页内容
* @param url
* @return
*/
def getUrlContent(url: String): String = {
Source.fromURL(url).mkString
} }

从上面的示例代码可以看出,scala有极强的类型推导能力,大多数情况下,不用指定变量类型,编译器能根据变量的值正确推导出变量类型,这一点豪不逊色于c#

scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例的更多相关文章

  1. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  2. Scala学习笔记(四)—— 数组

    定长数组Array 定义定长数组用Array,有如下几种方法: 初始化一个长度为8的定长数组,其所有元素默认值均为0 scala> new Array[Int](8) res0: Array[I ...

  3. python学习笔记整理——元组tuple

    Python 文档学习笔记2 数据结构--元组和序列 元组 元组在输出时总是有括号的 元组输入时可能没有括号 元组是不可变的 通过分拆(参阅本节后面的内容)或索引访问(如果是namedtuples,甚 ...

  4. Go语言学习笔记(三)数组 & 切片 & map

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 数组 Arrays 数组是同一种数据类型的固定长度的序列. 数组是值类型,因此改变副本的值,不会改变本身的值: 当 ...

  5. Scala学习笔记(二):运行脚本文件

    在某个目录(如:F:\)下新建一个文本文件,命名为:hello.scala 其内容为: println("Hello World!") 那么这个时候该怎么运行这个脚本文件呢? 通过 ...

  6. Python学习笔记3-Python元组、数组、字典集合的操作

    在Python中数组中的每一项可以是不同的数据类型 元组:只能读不能写的数组 aTuple=(1,'abc','tmc',79.0,False) print aTuple[1:3] print typ ...

  7. scala 学习笔记十 元组

    1.元组初始化 2.元组作为函数返回值 3.元组拆包 上面168行 ,单个val后面跟着一个由五个标识符构成的元组,表示对ff返回的元组进行拆包 上面174行,将整个元组捕获到单个val或var中,那 ...

  8. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  9. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

随机推荐

  1. vs2013编译boost1.55.0 32/64位

    在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\detail\has_member_function_call ...

  2. Java中的内部接口

    什么是内部接口 内部接口也称为嵌套接口,即在一个接口内部定义另一个接口.举个例子,Entry接口定义在Map接口里面,如下代码: public interface Map { interface En ...

  3. [gist]在浏览器里免查看源代码格式化var_dump输出

    Gist Link /** * 格式化var_dump输出... * 我勒个去..早怎么没想到..就加了个pre啊,, */ function var_dump_html($var){ echo &q ...

  4. Sql Server之旅——第三站 解惑那些背了多年聚集索引的人

    说到聚集索引,我想每个码农都明白,但是也有很多像我这样的猥程序员,只能用死记硬背来解决这个问题,什么表中只能建一个聚集索引, 然后又扯到了目录查找来帮助读者记忆....问题就在这里,我们不是学文科,, ...

  5. Apache安装问题:configure: error: APR not found . Please read the documentation

    Linux上安装Apache时,编译出现错误: checking for APR... no configure: error: APR not found .  Please read the do ...

  6. android中BuildConfig.DEBUG的使用

    ADT(r17)中添加了一个新功能可以允许开发者只在Debug模式下允许某些代码.Build系统生成一个名称为BuildConfig的类,该类包含一个DEBUG 常量,该常量会根据您的Build类型自 ...

  7. 错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”的解决方法(转)

    (转自:http://blog.csdn.net/bombzhang/article/details/12676789) 有一次升级开发工具后发现xml脚本出现错误“Unexpected namesp ...

  8. FTP上传与下载

    1.连接 先假设一个ftp地址 用户名 密码       FTP Server: 192.168.1.125 User: administrator Password: abc123 2. 打开win ...

  9. Docker Network containers

    Network containers Estimated reading time: 5 minutes If you are working your way through the user gu ...

  10. 新闻发布系统<分页>

    分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 实现效果如图所示: 当点击下一页时,地址栏地址为?pageIndex=2 1.创建 ...