一些独特的语言思考

各语言的特色

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 @   NewSea  阅读(343)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示