正文
“主教兄,甚好甚好,要不这顿我请?小二!”
饭菜上桌,互相客套了几句之后,话题就开始了。
“主教兄,这是我最近认识的朋友,年纪轻轻就周游四方,他有些事情要问你。”
“哦?”函数式主教把目光放了过来,“有何见教?”
“久闻贵教派向来神秘,为何最近有如此多的新教徒加入呢?”
“哈,这个嘛 ... 现在的年轻人都不喜欢条条框框,本教向来以简洁强大著称,自然就受欢迎了。”
小王子心想,这个教主倒也是有话直说、自卖自夸,不过难道没了面向对象这种强大的武器,他还能变出怎么样的花儿来?
“那还敢请教教主大人,依你看要怎么实现 Animal, Cat, Dog 这些对象呢?”想了一会儿,小王子认为不如直接发问。
“这个嘛,本教派并无对象这种说法,不过如果你愿意,也可以构造一个对象出来,只需要......”
“我们拜函数教不用对象~”,还没等着主教说完,旁边的妹子突然发话了。
“哦,小兰,你来说吧。”这位被叫做小兰的少女像是主教的助手,看起来深得主教信任。
“嘻嘻,教主大人说的太复杂了,其实实现你说的那些根本不用什么对象。”
“哦?那该怎么做?”小王子顿时来了兴趣。
“你想啊,搞出来这些猫啊狗啊的,不就是想让他们都可以吃东西么?干嘛要封装到一个对象中,太压抑了”
哦!Java 小王子恍然大悟,在
自己的Java帝国,法律非常严格, 类和对象才是一等公民, 函数是不可能独立存在的
, 你即使是想输出一个简单的hello world , 也必须写一个类,在类中写一个方法 , 在这个方法中才能输出hello world 。
在这里函数已经翻身做主人,成为了一等公民,再也不用困在对象的牢笼中,声明后就可以直接使用。
“也就是说,猫、狗都可以直接拿来调用咯?”
“是的呢~ 不止是猫、狗,连人都能作为参数调用呢, 只要一个对象有name这个属性就行啊”小兰的脸上还是一样的笑容。
长期在一个强类型的语言中生活,小王子对这种有点“变态”的灵活性还真不习惯, 他说:“在Java帝国,方法的参数都有确定的类型,如果你的方法写错了,IDE就能自动帮你检测, 减少了很多错误,现在可就没这种福利了。”
“有得必有失嘛”小兰笑道 “你可以多写一点单元测试来保证正确性啊”
“既然函数是一等公民, 我相信它不止这点能耐吧?“
“那是自然,
我们这里的函数还可以作为参数传递给另外一个函数呢
!”