scala初学之helloWorld

来源:互联网 发布:网络用语怒怼什么意思 编辑:程序博客网 时间:2024/06/06 02:08

  特此声明,本文中的代码 部分或全部来源王家林的scala教程;虽然王家林一直被大家所诟病,而且也无法确定这些scala的程序代码是不是他的。但是作为一个初学者觉得就算代码不是他的,他只是拿过来翻译一次,看他的视频也是能了解一些东西的;但是很多东西讲的确实欠缺;所以在学习的过程中把自己的很多思考注释到了他的代码中。一是当作自己的备忘,二也希望能够给大家带来一些些的帮助。也希望自己能把一百多集20分钟左右的视频都看完,思考完,并有所标注。


 进入正文:

 

/*首先认识了object前缀,知道它的作用之一就是所有的main方法都必须放在object中*/object HelloScala {  /*def 在scala中用来定义一个函数   * 在object中定义的方法可以分成下面几种情况   * 首先他们有一个共同的特点就是在scala的object中所有的方法都是静态的(可以通过Oject.xxx来调用),对应与java的static   * 下面说对应的几种情况   * 1. def xxx = {} 在object中对应与java的 public static 返回值   xxx(Type value){}   *    返回值在scala中可以省略,参数没有的话括号和参数都可以省略,一会说main方法的时候会看到一个方法的完整样子。(scala的难处就在于好多好多的地方可以省略··简写)   *    同时在scala中没有public关键字,在java中什么修饰符也不加也就是没有(public 。 protected 。 private)的话默认是包内可以访问的,所以包内访问怎么办?   *    别急scala也有提供办法,往下看   * 2. private def xxx ={} 私有方法   * 3. protected def xxx={} 在子类中可以访问   * 4. private[包] / protected[包] 首先指明了方法是私有的还是子类可访问的,然后又明确了这个方法在哪个包中能访问   * 5. scala还有一个独特的对象限制 格式为 private[this]/protected[this] 这样指明以后,就只能在本对象中访问,后面再细说   * 6. 对于默认的public,都public了所以就不用在加什么包限制和对象限制了   *    * */     /*再看看函数体本身,    * main(args:Array[String}):Unit={...}    * void mian(String[] args){}    * 和java的不同有    * 1.函数签名和花括号之间多了个等号    如果你的花括号中只有一句话 那么花括号也可以省略 例如 def test(name:String):Unit=println(name)    * 2.void 变成了 :Unit :Unit可以省略 例如 def test(name:String)=println(name)    * 3. String[] args 变成了 args:Array[String] 如果没有参数···那么这样也是对的 def test = println()    * 4. 函数内的语句后面不用加;了···能少敲一个是一个的思想··    * 5. 想返回值的话也不用写return了  直接写值就好 例如 返回5的函数     *     * def test = 5    * def test():Int = 5    * def test:Int = 5    *     * 都是正确的    *     * 从上面的三点可以得出的感觉是什么    * 1.在scala中要说明一个变量的类型 那么用 xx:Type的方式来指定    * 那么为什么在函数签名后面也是:返回值 呢?    * 这里明确一下我理解的变量类型。所谓的变量类型,就是你用一个什么样的声明来接受一个变量    * 这么说 也就是 你定一个了一个double类型的变量,那么只有在声明为double的才能接收这个变量    * 扩展到函数 :返回值 我们也理解为定义了函数的类型  其实也就是你用什么样的声明来接受这个函数的返回值    * 所以 函数===变量 所以他们都用 :Type 了,所以scala是函数式编程语言    *     * */    def main(args: Array[String]): Unit = {    println("Hello Scala!!!A new world!!!")  }}

原创粉丝点击