scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
2024-10-19 08:58:34
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#
最新文章
- OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
- node-webkit 支持pdf浏览
- .net AES加密解密
- 理解 Java 的三大特性之多态
- Eclipse中集成Tomcat
- bzoj1816 扑克牌
- PAT乙级 1012. 数字分类 (20)
- cocos2dx中如何从一张图片中切割一部分显示成小图片
- git使用图解
- 【Java】ArrayList 的 toArray() 方法抛出 ClassCastException 异常
- Zabbix 3.0 监控Web
- Android为TV端助力:RecyclerView更新数据时焦点丢失
- JQuery对checkbox的操作
- element split 将多个单号分隔
- rook 入门理解
- ajax,jsonp跨域访问数据
- ElasticSearch学习总结(二):ES介绍与架构说明
- 前端面试题之 sum(2)(3) (链式调用,toString,柯里化,数组操作)
- UltraISO制作U盘启动盘教程
- 转:美团Android资源混淆保护实践
热门文章
- mac os 错误提示:下载失败 使用已购页面再试一次 解决方法
- javascript-单例模式
- User Word Automation Services and Open XML SDK to generate word files in SharePoint2010
- InnoDB的WAL方式学习
- 基于RMI服务传输大文件的完整解决方案
- Android 中PopupWindow使用 (转)
- web性能优化系列之网站瓶颈识别
- How to stop uwsgi when no pidfile in config?
- Sql server2012连接Sql server 2008时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误。(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确。)
- 组合使用css选择器