Scala 初级入门课程一
来源:互联网 发布:童鞋淘宝网 编辑:程序博客网 时间:2024/04/30 05:36
package cn.dowhatyouwant.codes/** * Created by DengNi on 2016/8/31. * Scala 是动态语言,静态类型,因为难,所以用起来方便 * spark 太优秀每个人都应该去学习,使用 * 学习spark 优先推荐scala python * 基于jvm fp + oo * 跟java 互操作 * interpreter ==scala shell * val var * var h :String ,赋值后scala 自动推断数据类型 * 函数 * */object TestBegian { // 函数 def hello(name:String):String ={ //定义一个函数,返回类型为string "hello " + name //默认最后一行是return 值,所以不要加return } def helloScala(): Unit ={ //无参 函数前面的括号可以去掉 println("my name is xxxx") } def add=(x :Int,y:Int) => x + y //定义一个匿名函数 ,特别重要 def add2(x :Int)(y:Int) = x*y //柯里化 def printEveryChar(c : String*)={ //接受一系列string 类型的参数,就是可变参数 c.foreach(x=>println(x)) } def xx(age:Int = 18)={ //调用时候如果不传入参数,就使用默认 参数 18 age } // main f def main(args: Array[String]) { //println("hello there") // println(hello("scala")) //helloScala //对于无参函数,在调用时候不需要括号,建议加上吧 //println(add(1,2)) //println(add2(2)(4)) //printEveryChar("a","b") //printEveryChar("c","d","f") //println(xx()) //只有无参函数才能去掉括号 //条件表达式 if,scala 默认是不需要分号 //val x =2 //val b = if(x >1 ) 1 else 0 //println(b) //loop //var (n,r) = (10,0) //while(n > 0){ // r =r +n // n = n -1 //} //println(r) //foreach //for //for ( i<-1 to 100){ // print(i) // println() //} //for ( i<-1 until 10){ //不包含上线 10 ,这是跟to 的区别 // print(i) // println() //} //for (i <- 1 to 100 if i%2 == 0){ //打印偶数 for 跟 if 表达式的合用 //println(i) //} //循环表达式没有 continue and break //val p =new Person //没有构造函数的时候 类的括号可以省略 //p.name="hidoyouO" //print(p.name+":" + p.age) //val p = new Person("hijack",18) // new 变量的时候会打印 this is the primary constructor! // println(p.age + p.name) //val p = new Person("hijack",18,"f") //println(p.gender+p.name) val s = new Student("hijck",18,"Eng")//其实是初始化所有的方法和属性 println(s.toString) }}class TestBegian{ //所有类默认是public 的}//class Person{ //var name :String = _ //此时 String 是不能去掉的 // var name :String = "hijack" //var 定义的变量系统会自动生成geter &setter 方法 //val age = 18 //val 定义的变量只会生成getter方法 ,符合我们的不能重新赋值的理念 //private[this] var gender ="122" //变量只能在Person 内使用,main 方法中的对象不能调用//}//1.主构造器,直接跟在类名后面,主构造器的参数最后会编译成类的字段//2.主构造器执行的时候,会执行类中所有的语句//3.假设参数声明时候不带var or val ,那么声明的变量相当于private【this】,只能在//在类中使用, class Person ( name :String,val age : Int) 《= nameclass Person (val name :String,val age : Int){ println("this is the primary constructor!") var gender : String = _ //辅助构造器名称wei this //每一个附属构造器必须首先调用已经存在的子构造器或是主构造器 def this(name : String,age : Int,gender : String){ this(name,age) this.gender=gender }}//继承//name age 是继承来的 ,major 是student 类特有的,所以需要使用val 定义class Student(name:String,age :Int,val major :String) extends Person(name, age){ println("this is the subclass of Person,major is " + major) //重写父类的方法 和 字段 同时保持跟父类保持相同的数据类型 override def toString = "this from student"}
0 0
- Scala 初级入门课程一
- Scala深入浅出实战初级入门经典视频课程
- scala学习一:scala入门
- ios 初级入门 (一)
- Scala函数初级入门的几个要点
- Scala 笔记(初级入门篇)
- scala 入门开发一
- scala入门总结一
- Scala入门随笔一
- Scala入门(一)
- Scala基础入门(一)Scala 简介
- 初学入门Scala笔记(一)
- Web前端HTML+CSS+JS初级入门视频课程 001
- 【课程一 PC+移动开发】05.选择器初级+背景详解
- 【UI初级 连载一】------iPhone开发入门
- Android 网络编程 初级入门(一)
- iOS中 Swift初级入门学习(一)
- iOS中 Swift初级入门学习(一)
- 51nod-1110 距离之和最小 V3(中位数)
- python ctypes
- 事务457——事务的七个传播行为
- 抽奖-高并发
- java-jsp
- Scala 初级入门课程一
- 【算法之美-经典问题】九宫格问题
- Spring实现AOP
- Android事件的分发、拦截和执行
- Python编码之encode和decode
- Spring MVC自定义异常页面
- Vasiliy's Multiset (异或字典树)
- NVIDIA Jetson TK1学习与开发——手动刷机
- Object-C异常机制