究竟什么是语法糖呢

 其实语法糖只是一个概念,大家可能很早就在接触语法糖了,只是一直不知道这个就是语法糖

百科原话:语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。

这里有两点需要注意的:

1语法糖的目的:是为了让代码更易读,更容易让人理解。

2语法糖的本质:只是一种新的编码方式,并没有给语言增加新的功能

比如 C语言中  如果数组用指针的形式表示某元素的话

 1 a[i]表示 1 *(a+i) 

 

 1 a[i][j] 表示 1 *(*(a+i)+j)    这在本质上并没有给c增加新的功能,但是读起来却方便很多

在C#中比如:

 1 public string MyName { get; set; } 

 
表示
 1 private string _myName;
 2 
 3 public string MyName
 4 
 5 {
 6 
 7     get { return _myName; }
 8 
 9     set { _myName = value; }
10 
11 }
12 
13  

 

using (var stream = new FileStream("", FileMode.Create))
{// do something
}

表示:

 1 var stream = new FileStream("", FileMode.Create);
 2 try
 3 {
 4     // do something
 5 }
 6 finally
 7 {
 8     if (stream != null)
 9     {
10         stream.Dispose();
11     }
12 }

 

在此需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法。(貌似每个介绍语法糖的文章都会来这么一句)很多人觉得写原生的方法时不是效率更高,其实不然,在程序编译过程中,编译器已经会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

 

转载于:https://www.cnblogs.com/jilodream/p/4225080.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Batch –使用JavaConfig替换XML作业配置

我最近协助一个客户启动并运行了Spring Batch实现。 该团队决定继续为批处理作业使用基于JavaConfig的配置,而不是传统的基于XML的配置。 随着这越来越成为配置Java应用程序的一种常用方法,我觉得是时候更新Keyhole的Spring Batch系列了 ,向您…

php使用accdb,php如何连接access2007的accdb格式数据库文件?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼header("Content-type: text/html; charsetGBK");/*数据库路径,请自己修改,否则可能运行不正常*/$conn new COM("ADODB.Connection") or die("ADO连接失败!");$connstr "PROVIDER…

Karrigell 入门教程

http://wenku.baidu.com/link?urlPG3sP0mnKt-RPLxEPktTtqTsMlCflOwSTdOEgti21pnFaed1K_MSd4Xx-Z-ZvkgyTvIwWFTB1dEy1eQ9gKyIwIVMeKEiforBbVykW0Y2SM_ 讲karrigell 3.1.1,目录结构和2.x版本不一样了。新版本里面是没有Karrigell.ini 文中提到admin目录下有一个模块…

php autoload用法,php自动加载__autoload()函数用法

autoload在php主版本中是自动加载文件的一个方法了我们可以定义许多的文件在目录然后通过autoload加载了,下面来看看autoload函数用法。在PHP5之后,我们可以通过 __autoload来解决这个问题。 而且在PHP5.1之后,还提供了 spl_autoload_registe…

jaxb xsd生成xml_使用JAXB从XSD生成XML

jaxb xsd生成xml这是最初由JCG合作伙伴 Experiences Unlimited的Mohamed Sanaulla发表的帖子。 Mohamed解释了如何使用JAXB从给定的XSD生成XML 。 (注意:对原始帖子进行了少量编辑以提高可读性) 我们可以使用JAXB使用给定的Schema将Java对象…

oracle 10g客户端连接11g,生产环境oracle10g升级至11g准备工作

主要有以下的步骤 :1.new ORACLE_HOME(11g), old ORACLE_HOME (10g)--这些需要提前提供给客户,作为基本的约定2.install oracle software 11.2.0.2.0 on production--总共有7个DB,时间很紧,所以准备要充分3.apply DB patch additional if nee…

JBoss BPM Travel Agency的微服务迁移故事

不久前,我们启动了一个规模较大的JBoss Travel Agency演示项目,以展示JBoss BPM Suite的一些更有趣的功能。 我们提供了一系列视频 ,不仅向您展示了如何安装它,项目中各种规则和流程工件的含义,还向您介绍了在实际使…

windows快捷操作

命令行启动或关闭VMWare服务: net start VMwareHostdVMAuthdServiceVMUSBArbService"VMware NAT Service"VMnetDHCP#启动VMware虚拟机服务net start VMwareHostdnet start "VMware NAT Service"net start VMnetDHCPcmd#停止VMvare虚拟机服务net…

oracle 打印值,oracle – 在SQL Developer中打印变量的值

我想打印一个特定变量的值在一个匿名块内。我使用Oracle SQL Developer。我尝试使用dbms_output.put_line。但它不工作。我使用的代码如下所示。SET SERVEROUTPUT ONDECLARECTABLE USER_OBJECTS.OBJECT_NAME%TYPE;CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;V_ALL_COLS VARCHAR2(5…

【leetcode】Combinations (middle)

Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For example,If n 4 and k 2, a solution is: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 思路:有点像0-1背包问题, 对于从1-n的每一个数字都可以选择放入…

oracle 批量读,Oracle批量读取数据和批量绑定

通常我们获取游标数据是用fetch some_cursor into var1, var2 的形式,自 Oracle 8i 起,Oracle 为我们提供了fetch bulkcollect 来批量取游标中的数据,它能在读取游标中大量数据的时候提升效率,采用bulkcollect可以将查询结果一次性…

java压缩_Java压缩

java压缩在最近的项目中,我们不得不做一些我个人从未真正看过的事情。 压缩。 我们需要拍摄几个文件和图像,将它们压缩并提供给FTP使用,是的,总有一天,感觉确实回到了90年代。 除了过去的FTP之行外,它还是一…

我们的世界

看完记得留言说说你的感想 http://lchml.com/our-world/ 转载于:https://www.cnblogs.com/licheng127/p/4239021.html

eslint php,ESlint操作步骤详解

这次给大家带来ESlint操作步骤详解,ESlint操作的注意事项有哪些,下面就是实战案例,一起来看一下。vue-cli脚手架创建的项目默认使用ESlint规则,启动项目的时候因为各种语法报错,不得不先停下了解一下什么是ESlint&…

FileSystemMap:与文件系统交互的自然方法

作为项目的一部分,我目前正在研究创建FileSystemMap 。 我已经开始了一个非常小的GitHub的项目在这里举办的代码。 本质上,此映射实现将允许用户与其文件系统上的目录进行交互,就好像它是java.util.Map 。 映射中的每个条目将是该目录中的文…

动画原理——绘制正弦函数环绕运动椭圆运动

书籍名称&#xff1a;HTML5-Animation-with-JavaScript 书籍源码&#xff1a;https://github.com/lamberta/html5-animation 1.正弦函数。x位置递增&#xff0c;y位置用sin生成。 这段代码是不需要ball.js的。 代码如下&#xff1a; <!doctype html> <html><hea…

oracle优质图书,经典Oracle图书推荐(之四)_oracle

经典的oracle图书:Oracle High Performance Tuning for 9i and 10g by Gavin PowellBook DescriptionThere are three parts to tuning an Oracle database: data modeling, SQL code tuning and physical database configuration.A data model contains tables and relationsh…

expr命令 linux,Shell expr命令进行整数计算的实现

expr 是 evaluate expressions 的缩写&#xff0c;译为“表达式求值”。Shell expr 是一个功能强大&#xff0c;并且比较复杂的命令&#xff0c;它除了可以实现整数计算&#xff0c;还可以结合一些选项对字符串进行处理&#xff0c;例如计算字符串长度、字符串比较、字符串匹配…

单身数字_完美单身

单身数字我不时遇到一些Java程序员&#xff0c;他们不确定他们应该如何正确实现Singleton模式。 &#xff08;如果您不知道什么是Singleton&#xff0c;请尝试Wikipedia&#xff1a; Singleton模式 &#xff09;。 我并不是在谈论在线程环境中的正确实现。 但是&#xff0c;使用…

linux下bios设置内存电压,系统安装的BIOS设置?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼要安装系统前&#xff0c; 要为旧系统做好备份工作&#xff0c;为新系统准备了所需的软件之后&#xff0c;接下来的工作就是安装Windows XP了。而安装系统要知道系统安装的BIOS设置&#xff0c; 如果您的硬盘采用了动态分区&#x…