package com.dtgroup.study
import scala.io.Source object ForFunctionLazy {
def main(args: Array[String]): Unit = {
// for
println("for:line 0")
for (i <- 1 to 2; j <- 1 to 2) println("i=" + i + ",j=" + j)
println("for:line 1")
for (i <- 1 to 2; j <- 1 to 2 if i == j) println("i=" + i + ",j=" + j)
println("for:line 2")
for (i <- 1 to 2; j <- 1 to 2 if i > j) println("i=" + i + ",j=" + j)
println("for:line 3")
for (i <- 1 to 2; j <- 1 to 2 if i != j) println("i=" + i + ",j=" + j)
// error: for(i<- 1 to 2;j <-1 to 2 if i<>j) println("i="+i+",j="+j) // func:
// 1,)the function with value
// 2,)the scala ide known the result type
// 3,)in the recursion must declare the result type.
def add(x: Int) = x * 2
// nickname function
val add2 = (x: Int) => x * 200
var i = 100;
println("func:line 0")
println(add(i))
println("func:line 1")
println(add2(i)) def fac(n: Int): Int = if (n <= 0) 1 else n * fac(n - 1)
println("func:line 2,The result from a fac is:" + fac(5)) // the parameter of function can be assigned value
def combine(content: String, left: String = "<", right: String = ">") = left + content + right
println("func:line 3,The result from a combine is:" + combine("value"))
println("func:line 4,The result from a combine is:" + combine("value", "[", "]")) // param[]
def connected(args: Int*) = {
var result = ""
for (arg <- args) result += "," + arg.toString
result
} println("func:line 5,The result from a connected is:" + connected(1, 2, 3, 4, 5, 6))
// lazy lazy val file = Source.fromFile("d:\\spark2.txt")
println("lazy:line 0")
for(line <- file.getLines()) println(line)
println("lazy:line 1")
}
}

1,)for 中可以执行嵌套,同时可以加过滤条件;

2,)函数:

  a,)不仅仅有返回值时也是可以不写的,编译器会自动识别类型,但是如果使用在递归函数中必须指明返回值;

  b,)函数是有值的,从匿名函数中可以看出该结论;

  c,)函数的参数可以制定默认值;

  d,)函数的参数可以使用“类型*”,不限制传递参数个数;

3,)Lazy的用法,懒执行,只有当第一次使用时才加载,在scala中,对代码优化有极大贡献。

For,Function,Lazy的更多相关文章

  1. [原创]Scala学习:for,function,lazy

    1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Rang ...

  2. 【javascript】详解变量,值,类型和宿主对象

    前言 我眼中的<javascript高级程序设计> 和<你不知道的javascript>是这样的:如果<javascript高级程序设计>是本教科书的话, < ...

  3. 一篇文章带你了解JavaScript中的语法,数据类型,流程控制语句以及函数

    作者 | Jeskson 来源 | 达达前端小酒馆 1 JavaScript有多重要啊,才能让我说说一下,其中的语法,操作符,数据类型,内置功能等. 语法: 在JavaScript中的变量,函数名和操 ...

  4. sass揭秘之@mixin,%,@function

    因为文章内含有很多sass代码,如需自己动手查看编译结果,推荐使用sassmeister这款在线编译工具,方便你阅读学习. 在阅读本文章之前,请先确认你已经阅读了上篇文章sass揭秘之变量,不然会给你 ...

  5. std::function,std::bind

    std::function 和 std::bind 标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数.bind()接受一个函数(或者 ...

  6. js中,(function(){})()的用法解析

    (function($){...})(jQuery)  含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...

  7. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

  8. $(function() {....}) ,(function($){...})(jQuery)

    $(function() {....}) 是 jQuery 中的经典用法,等同于 $(document).ready(function() {....}),即在页面加载完成后才执行某个函数,如果函数中 ...

  9. 转载:$(function() {}),即$(document).ready(function(),什么时候执行?以此为准,真理

    转载:https://blog.csdn.net/Ideality_hunter/article/details/77935656 $(function() { //执行操作 }); $(functi ...

随机推荐

  1. PHP程序员 新人求职 平台

    投简历网站:大街网:中下,但是反馈速度不错拉勾网:中上,工资好像很多都很不错实习僧:不太熟悉,中等吧猎聘网:好像不错,本人不常用海投网:不清楚,没用过以上评级都是个人感觉而已,不代表正式评价个人感觉以 ...

  2. 【HDU】1517 A Multiplication Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1517 题意:每次乘上2~9..p>=n时赢.. #include <cstdio> #incl ...

  3. iOS 自动布局小结

    1> sizeclasses 可以限制某个 storyboard 显示在什么样的屏幕上,如 当前 storyboard 在iPhone 的左斜右斜或 iPad上是否显示.. 2> Hug值 ...

  4. 访问google,youtube

    一.找到host文件 windows : C:\windows\system32\drivers\etc mac os: /private/etc linux : /etc 二.修改host文件 ht ...

  5. Flex Flash Player回声消除的最佳方法

    Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提 ...

  6. 李洪强漫谈iOS开发[C语言-048]-打印平方表

    打印平方表

  7. ThreadLocal解析

    ThreadLocal 如果定义了一个单实例的java bean,它有若干属性,但是有一个属性不是线程安全的,比如说HashMap.并且碰巧你并不需要在不同的线程中共享这个属性,也就是说这个属性不存在 ...

  8. Js的引用关系示例和总结

    三种引用(指针引用)关系,借助引用关系可以形成复杂的链关系,巧妙借助链关系可以实现收放自如,形散神不散的神奇效果,jquery就是其中一例: 1.对象指向属性;        2.a=b(b是对象,a ...

  9. Java FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  10. Java代理模式

    java代理模式及动态代理类 1.      代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目 ...