zoukankan      html  css  js  c++  java
  • 语法糖

    语法糖 是计算机语言中的一种语法,语法糖并没有为计算机语言添加新的功能,而是对已有的功能进行了封装,提供给用户更好的编程方式和编码风格。

    举例来说,C语言中的a[i] 表示*(a+i),在C#语言中,语法糖更多,比如下面的代码:

    View Code
     1     public class Person
    2 {
    3 // Automticall Implemented Property (自动实现的属性)
    4 public string Name { get; set; }

    5 public int Age { get; set; }
    6 }
    7
    8 class Program
    9 {
    10 static void Main()
    11 {
    12 // Object Initializer (对象初始化器)
    13 Person person1 = new Person { Name = "Andy", Age=24 };

    14 Person person2 = new Person { Name = "Bill", Age = 20 };
    15 Person person3 = new Person { Name = "Carol", Age = 28 };
    16
    17 // Collection Initializer (集合初始化器)
    18 List<Person> persons = new List<Person>{ person1, person2, person3};

    19
    20 // Extension Method(扩展方法) 和 Lambda Expression(Lambda表达式)
    21 var personList = persons.Where(p=>p.Name == "Bill");

    22 var maxAge = persons.Max(p => p.Age);
    23 }
    24 }

     

      在上面的代码中使用的语法糖有Automatically Implemented Property,Object Initializer,Collection Initializer,Extension Method,Lambda Expression。很多人认为,语法糖只是进行了封装,提供更方便的接口,不具有很大的意义。事实并非如此,语法糖的更大意义在于,影响了程序员的编程思想。比如:

    var personList = persons.Where(p=>p.Name == "Bill")表达的意思是,找出persons集合中Name为Bill的Person组成的集合。

    var maxAge = persons.Max(p => p.Age) 表达的意思是,找出persons集合中最大的年龄。

    是不是有一点声明式编程的味道,而C#中的Linq更是体现了声明式编程的思想。

  • 相关阅读:
    axios
    es6
    $route监听路由变化
    容易挂
    自定义全局组件/插件
    eslintrc.js
    dev-server.js
    webpack-dev-server.js
    怎么消除间隔间的空白字符
    es6语法
  • 原文地址:https://www.cnblogs.com/nzbbody/p/2303333.html
Copyright © 2011-2022 走看看