网站建设产品需求文档,技术培训学校机构,怎么找做网站的客户,ipv6做网站特此声明#xff0c;本文中的代码 部分或全部来源王家林的scala教程#xff1b;虽然王家林一直被大家所诟病#xff0c;而且也无法确定这些scala的程序代码是不是他的。但是作为一个初学者觉得就算代码不是他的#xff0c;他只是拿过来翻译一次#xff0c;看他的视频也是能… 特此声明本文中的代码 部分或全部来源王家林的scala教程虽然王家林一直被大家所诟病而且也无法确定这些scala的程序代码是不是他的。但是作为一个初学者觉得就算代码不是他的他只是拿过来翻译一次看他的视频也是能了解一些东西的但是很多东西讲的确实欠缺所以在学习的过程中把自己的很多思考注释到了他的代码中。一是当作自己的备忘二也希望能够给大家带来一些些的帮助。 进入正文 /*首先认识了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):Unitprintln(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!!!)}}