三掌门 > 数据时代之王 > 48 N语言

48 N语言


  “嗯,火车随便停在路上会与后面的火车相撞,以前就发生过这样的事故。”

  “所以,这就是面向过程的不足之处。”

  假如你会飞,而且是飞过去的,即使飞偏了也没有问题,这样就不需要固定的路线,花费的时间就少,即会飞累了,你随便找个地方休息也不影响别人。

  “我现在开发的N语言就是这个道理,N语言是可以跨平台的,就像人如果会飞,他即可以直接飞到宾馆再休息,也可以在天上睡觉。

  同样,N语言没有指针这一让人恶心的功能。

  另外它还能可以面向对象,就像迁移的候鸟,

  可以直接从北方飞到我们家,而不经过路上这些城市。”

  张山忽然说道:“我还是有些不明白。”

  栾青松想了想说道:“出道算术题给你做,你就明白什么是面向过程了,有这么一道题目,“1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,以此类推一直1+3+5+7加到999999的结果是多少平方?

  然后从1的平方相加到最后个得数的结果相加的数值是多少?

  老山哥,算出结果你就知道什么是面向过程了。”

  这一题目看似非常简单,就是数学相加而已,如果你不注意你就会不知不觉掉到问题的它陷井里,但是如果好的方法,正常人根本算不出来。

  光是1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,

  以此类推一直1+3+5+7加到999999的就够你算的。

  当然,找到方法就非常容易,这里有一个非常的1的平方前面一个数,二的平方前面两个数,叁的平方前面有三个奇数,四的平方前面有四个数。

  以类推就很简单得到,1+3+5+7+......999999的后面是多少个数。

  第一步的计算公式如下:(999999-1)/2+1=500000,那么,1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,以此类推一直1+3+5+7加到999999的结果就是1的平方加2的平方加3的平方一直到500000的平方。

  第二步利用,1^2+2^2+3^2+..+N^2=利用立方差公式。

  N^3-(N-1)^3=1*[N^2+(N-1)^2+N(N-1)]........=N^2+(N-1)^2+N^2-N=(N/2)(N+1)(2N+1)  1^2+2^2+3^2+...+N^2=N(N+1)(2N+1)/6,就可以得出结果.

  为了不让小表哥打扰谈话,栾青松一道题直接把张山打发走了。

  末了还加一句话:“老山哥,这道很简单,我三岁的时候,我爷爷拿这道题考我,我总共花了不到一分钟就算出了答案。

  现在我出给你计算时间,看你什么时候可以算出来。”

  然后,栾青松继续和张海讨论两种语言的优劣所在。

  在语法中,栾青松认为他的N语言综合了汇编语言、C语言、C++、BASIC等语言优点。

  因此N语言与C语言的语法还是有类似的地方,

  C语言言有着自己的标准库,N却有着自己数据库。

  在内存的管理中,C语言在使用完一块内存时,要手动把内存释放掉,如果不释放的话,运行久了,程序很容易就会崩溃掉的。

  由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了。所以栾青松认为编程者要特别以下几个问题。

  在调用者中先分配好内存,作为参数传入到被调用的函数中,在被调用的函数中分配,使用完后在调用者中释放,在被调用函数中使用static变量,可以将该变量返回。

  而N语言基本不用考虑内存的问题,如果想用一个对象,新增一个就可以。

  根本不像C语言那么复杂,从根本上来说简化了整个编程的步骤和代码,那怕是初学者也很容易理解,这才是语言的精练的意义。

  这个过程的背后则是JRE为对象分类的一定内存,

  当JRE发现你不再使用这个对象的时候,他就会自动回收内存,

  也就是说你只管借东西,不用管归还。因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。

  另外的在两种语言的语法中,使用的基本类型,C语言有着很多的基本类型如下。

  booleaN,  char,  byte,  short,  iNt,  loNg,  float,  double,struct,  uNioN,  eNum。还有数组,指针等等,零零总总加起来有十好几种,

  显得太过繁琐,不容易让人记住。

  特别不利于英文水平差的人学习。

  在N语言就不同,它的整个语法只有10个基本类型和引用的。

  少了数组,指针等这些东西,

  更容易让人学习和理解。

  在继承中,两种语言都支持方法重载的,C语言是多线继承。

  比如:小轿车和货车都继承了汽车类,斯柯达是继承小轿车的,东风大卡车是继承货车,这样斯柯达也可以继承货车,东风大卡车也可以继承小轿车。

  N语言是单继承的,比如:小轿车和货车都继承了汽车类,斯柯达是继承小轿车的,东风大卡车是继承货车,这样斯柯达就不能继承货车,当然东风大卡车也不能继承小轿车。

  显得更加专业,C语言变好比混合汽车公司什么车型都做,结果分散了研发的技术力量,公司虽然大,但是杂而不精,反而造不出高品质的汽车。

    N语言则显得更加专业,好像社会化大分工,专注于某一个行业,直到成为行业里最为高端的像征,这样买车的人,使用起来更加舒服。

  动态、静态绑定在C语言中,为了允许运行时动态决定哪个函数被调用,一个函数必须用virtual修饰。virtual关键字被自动继承,用以支持多态;凡是没有用virtual修饰的成员函数(包括static)都是静态绑定的,即在编译时决定调用哪个版本

  而在N中,除了static、fiNal、private是静态绑定以外,所有方法一律按动态绑定处理

  初始值,直接调用即可,简单明了。

  在C语言中,是可以不初始化使用的,而在N中,是必须初始化值的

  抽象方法或抽象类,C语言的对等语法是“纯虚函数”和“抽象类”

  N语言使用abstract关键字修饰抽象方法或抽象类,f和D类不能被继承。

  都使用抽象类作为继承层次中的基类,提供一般概念,由子类实现其抽象方法,且抽象类都不能被直接实例化为对象


  https://www.3zmwx.cc/files/article/html/62/62671/493171611.html


  请记住本书首发域名:www.3zmwx.cc。三掌门手机版阅读网址:wap.3zmwx.cc