一些独特的语言思考

各语言的特色

1. linq 本身是一个语法糖, 编译器都是把LinQ句法翻译成扩展方法的链式表达式。在使用上体验非常好。

  

关键字

说明

from

指定数据源

where

&&(AND)或者||(OR)组合的表达式来做数据过滤

select

用于指定查询中返回的结果

group

根据键值,将查询结果分组

into

指定一个临时变量,保存join,group,select的结果

orderby

根据指定值,将查询结果排序

join

连接两个数据源

let

声明查询表达式内部的变量

2.  eval 动态脚本利器  js语言

3.  执行匿名方法  js语言 : (function(){})()  

                       C# 语言: ((Func<int,bool>)(o => true))(3)

4. 三联表达式    易语言:  if( 1<x<3 )    编译器转换为: if ( 1<x && x<3 )  还是挺好玩的。

5. 多返回值     易语言  : 返回 ( "易语言", 28 ) ;

                    Js       : return { name: "易语言" , value: 28 } ;

         C#   : return new { name = "易语言" , value = 28 } ;

    都很Cool

6. 作用域,自动析构: C#  using(var d = new IDisposeObject() ){}

7. 协变  out , 逆变 in  C#

8. prop in json , javascript 

9. F#的 区间 [0..10] , 带步长的区间:  [0..(3)..10]

 

一些不方便的地方

1. 语言或编译器还不能强制子类实现某方法,如子类必须实现克隆:

     http://www.cnblogs.com/luminji/archive/2011/02/02/1948826.html#2460965

    这种场景很常见,强制孙类实现某方法(可以实现,但不通用):

     http://www.cnblogs.com/newsea/archive/2012/04/12/2443239.html

 

posted @ 2012-09-07 00:56  NewSea  阅读(337)  评论(0编辑  收藏  举报