一些独特的语言思考
各语言的特色
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
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |