scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
2015-08-02 22:16
746 查看
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#
相关文章推荐
- POJ 3126 Prime Path
- 在myeclipse的java web项目中手动添加jstl的步骤
- Radiobutton去掉默认选中圆圈的问题
- 32位和64位系统区别及int字节数
- php笔记
- blade全集
- JAVA基础一大堆0802集合+泛型
- Linux 下socket网络编程
- c#region
- 移植u-boot-2015.07-rc3之修改代码支持NorFlash(四)
- 华为机试题-超长正整数相加
- 转Intellij支持Eclipse的代码格式化文件
- jquery下的ajax
- 使用X.509数字证书加密解密实务(三)-- 使用RSA证书结合对称加密技术加密长数据
- 设置html的div中背景图片长宽
- leetcode 076 —— Minimum Window Substring
- HDU 1556 Color the ball(线段树)
- hibernate 多对多(many-to-many)
- 使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据
- 第一百二十二天 how can i 坚持