scala学习笔记3
2015-09-30 09:20
295 查看
变量定义:
val:类似java中final类型的变量1,基本格式:val 变量名:变量类型 = 值
2,其中有时变量类型可以省略,可以自动识别
3,变量不能赋值,修改
var :等同于java中的非final型变量
val msg: java.lang.String = "Hello World String" println("msg: " +msg) var msgVar: java.lang.String = "Hello World String" println("msgvar: " +msgVar) msgVar = "Hello World String new value" println("msgvar:" + msgVar)
结果应该为
msg: Hello World String msgvar: Hello World String msgvar:Hello World String new value
函数定义
函数格式:
def 函数名(参数列表,...):返回结果类型={},下面给出一个max函数
def max(a: Int,b: Int):Int ={ if(a > b) a else b } var maxValue = max(6,10) println("max(6, 10) the max maxValue is :" + maxValue ) println("max(6, 10) the max is :" + max(6,10) )
返回结果是较大的值
max(6, 10) the max maxValue is :10 max(6, 10) the max is :10
1,有时函数必须制定返回结果类型,如函数时递归,就必须明确制定返回结果类型
2,在max这里例子中及时不写返回结果,编译器也能推断,如实这个函数就 编程如下的样子,作用功能都没有变化
def max2(a: Int,b: Int)={ if(a > b) a else b }
3,如果函数仅 一个语句,连花括号都可以不写。如是max函数就成了这样,作用功能仍然没有变化
def max3(a: Int,b: Int)=if(a > b) a else b
些到这里的时候老子真想来一句what a fuck function ,碎了一地啊。
接下来,是一个既不传参,也不返回有用结果的函数的定义,据说解析器返回
greeting():Unit,其中Unit值得时greetin的返回类型,类似于Java的void类型,而且Java中的void类型会被映射成Unit
def greeting()=println{"no args no return?"} greeting() greeting
but调用,卧槽,这都可以啊,结果两个都返回
no args no return? no args no return?
while循环
Scala中,i++或者++i都不能其作用,只能使用i=i+1var i = 0; while(i <= 5){ println("i is : " +i); i = i + 1 }
foreach与函数字面量
函数字面量格式:参数列表 => 函数体(x: Int, y:Int) => x + y
下面结果都是一样,
args.foreach(arg => println(arg)) args.foreach((arg: String) => println(arg)) args.foreach(println)
for循环
for循环中是val类型,因此在for表达式中不能重新对其赋值, <-可以理解为其中的意思,for(arg <- args) 对于args中的arg, 纳尼?怎么感觉是Java中foreach中的in
for(arg <- args){ //arg = arg + "new value" //resi println("for(arg <- args) now arg is val :"+arg) }
args 输入 args for main,则输出结果:
for(arg <- args) now arg is val :args for(arg <- args) now arg is val :for for(arg <- args) now arg is val :main
相关文章推荐
- CSS3兼容IE
- 如何让jsp和js获取来源页地址和ip原理及代码
- 设计模式-装饰模式
- C#操作MongoDB帮助类
- textarea 在浏览器中固定大小和禁止拖动
- Android模拟器,手机区别
- 【转载】Git 少用 Pull 多用 Fetch 和 Merge
- 实现单链表的插入
- 经方败案群崩漏专题1(2015年9月) “崩漏治疗经验”微信语音整理版
- jQuery编程最佳实践
- html实用小技巧
- 【TCP/IP 合约】 TCP/IP 基金会
- 低效程序员的7个坏习惯
- 理科生的互联网+ 谢耳朵附体好不好?
- accept属性列表
- 函数指针的应用
- 利用jQuery实现漂亮的圆形进度条倒计时插件
- c编程题目详解
- Trie树的一种实现
- 安德鲁斯----多媒体编程