scala成长之路(5)问题记录】的更多相关文章

还是在看scala sdk源码的时候,有很多问题要考自己慢慢摸索,这里做个记录. 一. 隐式转换的作用域? 隐式转换需要三个因素 1. 己方(当前对象) 2. 转换函数 3. 对方(转换的目标类) 这三个需要在同一个作用域内才能生效吗?举个简单的例子,依然是java HashSet隐式转换为scala Set(可以参看本系列(3)),我们只是在要用到转换的文件里写了一行: import scala.collection.JavaConverters._ 也就是说导入了JavaConverters…
由于scala中函数内部能定义函数,且函数能作为函数的返回值,那么问题来了,当返回的函数使用了外层函数的局部变量时,会发生什么呢?没错,就产生是闭包. 关于闭包的解释网上一大堆,但基本上都是照葫芦画瓢,一个模子刻出来的,说来说去都只讲了“内部函数引用外层函数的局部变量”这个刻板的定义,根本没降到精髓.精髓是什么?且看我一句话给你讲清楚: 闭包就是外层函数函数的对象,外层函数就是闭包的构造函数! 怎么样,是不是摸不着头脑?其实是这样,我们使用闭包的目的并不是为了引用外层函数的局部变量,这只是手段,…
众所周知,scala作为一门极客型的函数式编程语言,支持的特性包括: 函数拥有“一等公民”身份: 支持匿名函数(函数字面量) 支持高阶函数 支持闭包 部分应用函数 柯里化 首先需要指出,在scala中有方法和函数对象两种形态,方法即是通过def关键字定义的函数,而函数对象则是通过将方法转换而来,或lambda赋值而来. 1. 从“一等公民”说起 很多稍微了解过函数式编程的人可能都听说过“一等公民”这种说法,但却很少有人能明明白白地说出究竟什么是“一等公民”.这里我做个类比你马上就明白了:现实中,…
虽然java一直声称自己是完全面向对象的语言,但一直以来都被很多人所质疑,其中java的静态成员函数就是主要的“罪魁祸首”.由于java中保留了静态方法的调用,导致其编程模式依然有过程式编程的可能,尤其是在静态方法被滥用的当下(一个顽固的面向过程程序员完全可以将他的过程思维用一大推静态方法实现,而class仅仅只是个空有其表的外壳而已) 所以在scala中,设计者摒弃了static关键字,宣称自己是完全面向对象的,似乎更有说服力... 但是我们在编程中有时确实需要用到一般功能性函数,例如工具函数…
不废话,先上例子:定义一个参数类型为String的函数: scala> def sayHello(name:String) = println("hello " + name)sayHello: (name: String)Unit 然后调用此函数,但传入参数为1,可想而知一定会报错: scala> sayHello(1)<console>:13: error: type mismatch; found : Int(1) required: String say…
scala提供了一种特殊的定义单例的方法:object关键字 scala> object Shabi{ | val age = 0 | val name = "shabi" | def say = { | println("hello, I am a shabi") | } | }defined object Shabi scala> Shabi.sayhello, I am a shabi object定义的单例可以类比于java中的静态元素,也类似于…
scala作为JVM上的Lisp,是一种geek类型的编程语言,也一直是我等java程序员眼中的梦寐以求的一门技能,遂下定决心花一段时间好好学习scala.第一天学习,主要介绍与java在编程上的主要区别. 首先,scala默认导入了java.lang包下的所有类,因此在scala中可以直接使用所有该包下的所有类,例如System.String 1. scala与java不同的一点是:scala是完全面向对象的,它没有基本数据类型,所有的变量.字面量或常量都是对象,所以你可以看到这种调用方式 s…
点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图)  部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 1.1 添加A记录 编辑主DNS : /var/named/chroot/etc/carlos.com.zone,在文件末尾添加一条记录 \$ORIGIN . \$TTL 3600 ; 1 hour carlos.com IN SOA op.Carlos.com. dns.carlos.com.…
分享总结title: java 成长之路tags:grammar_cjkRuby: true 经验差异 1-3年 要求 建议 3-5年 建议 5年+ 经验差异 最近一年比较忙,经历了创业公司的倒闭.这次又来到一个创业公司.由于要分享经验,而且很久没有写博客了.所以就把这次分享的写一下吧,希望以后能一直坚持下去.做java的么.总要有学习路线.有一个大纲,知道几年经验应该会些什么,而不是混日子.要记住工作年限!=经验 1-3年 要求 我以前面试1年经验的人,基本不会去问框架,只会问一些api,例如…
分享总结 title: java 成长之路 tags: grammar_cjkRuby: true 经验差异 1-3年 要求 建议 3-5年 建议 5年+ 经验差异 最近一年比较忙,经历了创业公司的倒闭.这次又来到一个创业公司.由于要分享经验,而且很久没有写博客了.所以就把这次分享的写一下吧,希望以后能一直坚持下去. 做java的么.总要有学习路线.有一个大纲,知道几年经验应该会些什么,而不是混日子.要记住 工作年限!=经验 1-3年 要求 我以前面试1年经验的人,基本不会去问框架,只会问一些a…