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#

最新文章

  1. OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
  2. node-webkit 支持pdf浏览
  3. .net AES加密解密
  4. 理解 Java 的三大特性之多态
  5. Eclipse中集成Tomcat
  6. bzoj1816 扑克牌
  7. PAT乙级 1012. 数字分类 (20)
  8. cocos2dx中如何从一张图片中切割一部分显示成小图片
  9. git使用图解
  10. 【Java】ArrayList 的 toArray() 方法抛出 ClassCastException 异常
  11. Zabbix 3.0 监控Web
  12. Android为TV端助力:RecyclerView更新数据时焦点丢失
  13. JQuery对checkbox的操作
  14. element split 将多个单号分隔
  15. rook 入门理解
  16. ajax,jsonp跨域访问数据
  17. ElasticSearch学习总结(二):ES介绍与架构说明
  18. 前端面试题之 sum(2)(3) (链式调用,toString,柯里化,数组操作)
  19. UltraISO制作U盘启动盘教程
  20. 转:美团Android资源混淆保护实践

热门文章

  1. mac os 错误提示:下载失败 使用已购页面再试一次 解决方法
  2. javascript-单例模式
  3. User Word Automation Services and Open XML SDK to generate word files in SharePoint2010
  4. InnoDB的WAL方式学习
  5. 基于RMI服务传输大文件的完整解决方案
  6. Android 中PopupWindow使用 (转)
  7. web性能优化系列之网站瓶颈识别
  8. How to stop uwsgi when no pidfile in config?
  9. Sql server2012连接Sql server 2008时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误。(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确。)
  10. 组合使用css选择器