• 什么是语法糖


    语法糖简介

    语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

    在计算机科学中,语法糖(Syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言:操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。

    就相当于汉语里的成语。用更简练的言语表达较复杂的含义。在得到广泛接受的情况之下,可以提升交流的效率。

    之所以叫「语法」糖,不只是因为加糖后的代码功能与加糖前保持一致,更重要的是,糖在不改变其所在位置的语法结构的前提下,实现了运行时的等价。可以简单理解为,加糖后的代码编译后跟加糖前一模一样。

    基本解释

    实际上从面向过程到面向对象也是一种语法糖,C 语言可以通过它的指针、类型转换、结构体,实现面向对象的编程风格,但是 C++ 更进一步的推广了这种风格,更加易用,不过到了 C# 把(面向对象)OO 的风格发挥得淋漓尽致。OO 的编程风格对于面向过程来说是不是一种语法糖呢?如果生硬地照此理解,只有计算机硬件指令才不算语法糖,而其他一切利用编译器、汇编器将代码抽象,和自然语言更相近的手段都算语法糖。

    对于机器语言,任何比他高级的语言都是语法糖,比如汇编语言,高级语言。

    对于汇编语言,任何比他高级的语言都是语法糖,比如高级语言。

    对于面向过程的语言,面向对象的语言都是语法糖。

    Java中的语法糖

    语法糖的存在主要是方便开发人员使用。但其实,Java 虚拟机并不支持这些语法糖。这些语法糖在编译阶段就会被还原成简单的基础语法结构,这个过程就是解语法糖。

    com.sun.tools.javac.main.JavaCompiler 中的 deSugar 方法,负责解语法糖的实现。

    Java 中的语法糖只存在于编译期,在编译器将 .java 源文件编译成 .class 字节码时,会进行解语法糖操作,还原最原始的基础语法结构。这些语法糖包含条件编译、断言、Switch 语句与枚举及字符串结合、可变参数、自动装箱/拆箱、枚举、内部类、泛型擦除、增强 for 循环、lambda 表达式、try-with-resources 语句、JDK10 的局部变量类型推断等等。

    需要声明的是“语法糖”这个词绝非贬义词,它可以给我们带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

    参考:

    https://www.zhihu.com/question/20651624

    https://www.jianshu.com/p/777b10385524

    https://www.jianshu.com/p/536bcceb99dc

    https://www.cnblogs.com/qingshanli/p/9375040.html

  • 相关阅读:
    在MAC系统的eclipse里打开android sdk manager
    在MAC上搭建eclipse+android开发环境以及eclipse的svn插件的安装
    C语言入门
    变量和数据类型
    兼容 FF&IE 的替换鼠标选择文字方法(转载)
    JavaScript 中在光标处插入添加文本标签节点 详细方法
    jquery获取鼠标位置
    转:javascript Range对象跨浏览器常用操作
    日省三思
    jQuery强大的jQuery选择器 (详解)[转]
  • 原文地址:https://www.cnblogs.com/thetree/p/13606049.html
Copyright © 2020-2023  润新知