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!!!") }}
阅读全文
0 0
- scala初学之helloWorld
- scala之HelloWorld
- Scala 介绍之 HelloWorld
- 1.scala之HelloWorld
- 初学RabbitMQ之HelloWorld
- 初学MyBatis之HelloWorld
- Scala + Spark +Maven之Helloworld
- Scala HelloWorld
- scala初学1之基础篇
- 初学scala
- scala初学
- scala ide + helloworld
- Scala初学之——值和变量的声明
- scala初学之函数定义、流程控制、异常处理入门
- scala初学之Tuple、Array、Map、文件操作入门实战
- HelloWorld常见问题(Java初学)
- MTK 初学,建HelloWorld
- 初学Java,HelloWorld(一)
- 读
- imx6ul+QT5.6交叉编译问题
- session过期时间
- AirKiss 3.0开发,项目用AS打开的时候遇到的问题 Error: NDK integration is deprecated in the current plugin. Consider
- 一个关于MediaPlayer的坑
- scala初学之helloWorld
- 【滤波器学习笔记】一阶RC低通滤波
- 如何使用tf-slim高层封装库处理大型图像数据?| 公开课
- 微软开源深度学习工具包CNTK更新2.3版,带来多重性能改进
- 第4弹!CS231n 2017中文字幕视频:介绍神经网络
- Android Studio 无法run 之---- Invalid File slice_9.apk.
- nodejs能做什么
- HDU DFS
- 一次点击事件,触发两次异步请求