programming in scala 2nd代码学习(第一天)

近来没事,拿出了原先学习scala的代码 书中代码噢、拿出自己的笔记来了。我比较喜欢拿代码说话这样形象一点。


//定义capital变量存储Map结构 var capital = Map("US"->"Washington") 

//添加内容 capital+=("China"->"BeiJing") 

//打印 println(capital("China")) 

// 方法定义,尾递归是不是很眼熟呢? 

//def methodName(var:Type):Type = {//block}

 //这里区别的java 参数定义是 Type var 这里用:加以区别提醒用户返回的类型容易区别 

def factorial(x: BigInt): BigInt = 
   
// 逻辑结构 基本类似,顺便提一下每一行可以省略冒号,返回可以直接是数值因为数值也// // 是对象嘛.你在scala命令行中输入1+2 会得到 3. 

if(x==0) 1 else x * factorial(x-1) 

// 方法调用 factorial(30) 

//下面这个代码是比较完整的应用 

//类的导入.访问jdkAPI 

import java.math.BigInteger 

    def factorial(x: BigInteger): BigInteger = 

          if(x == BigInteger.ZERO)BigInteger.ONE 

         else x.multiply(factorial(x.subtract(BigInteger.ONE))) 

factorial(30)
// 说完了变量、方法的定义使用、包括部分的面向函数式编程。下面进入循环结构//方法可以直接作为返回值,将整个方法也当成个对象!       

def greeting() = println("Hello World")

//   相信这样的代码大家并不会陌生了,几乎和java是完全一样的。 顺便提一下 scala是类型推断的所以var可以定义任意类型的变量。 

var i=0
while(i<args.length)
{
	println(args(i))
	i+=1
}

//for循环忽略参数
for(arg <- args) println(arg)
//指定循环次数
for(i 0 to 10) 
/*

    当然还有更加简单的

    这可能是大家梦寐以求的了.省心省事省力
    args.foreach(arg => println(arg))
    args.foreach(println)
*/

你可能感兴趣的:(编程,scala)