语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·蘭丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。它使语言“更甜”供人类使用:事物可以更清晰,更简洁地表达,或者以某些人可能更喜欢的替代方式表达。

举例来说,许多程序语言提供专门的语法来对数组中的元素进行引用和更新。从理论上来讲,一个数组元素的引用涉及到两个参数:数组和下标向量,比如这样的表达式:get_array(Array, vector(i, j))。然而,许多语言支持这样直接引用:Array[i, j]。同理,数组元素的更新涉及到三个参数:set_array(Array, vector(i, j), value),但是很多语言提供直接赋值:Array[i, j] = value

语法盐

語法鹽(英语:syntactic salt)是指在計算機語言中為了降低程式設計師撰寫出不良程式碼的設計,但其中仍會有潛藏錯誤存在的可能。例如,C語言或C++語言中Switch指令的case中若不加break編譯器並不會產生錯誤訊息,部分程式設計師認為宣告變數型態也是語法鹽的一種。

语法盐的替代方法是在代码很可能是错误的结果时生成编译器警告 - 这是现代C / C ++编译器中常见的做法。

C++

相较于 C 中形如 (T)v 的 C 样式转换和 T(v) 的函数样式转换,C++ 通过引入 static_cast、reinterpret_cast、const_cast 和 dynamic_cast 这四种转换来强迫程序员多敲键盘,从而令他们少用转换。

double  d =0.1;
const int i=static_cast<int>(d);//静态转换:编译时能进行类型检查的转换
void *pv=reinterpret_cast<void*>(i);//重解释转换:在不兼容的类型间进行转换(例如指针与非指针)
const int *pi=&i;
int *pi2=const_cast<int*>(pi);//常量转换:去掉 const、volatile 等修饰符
class C{public:virtual ~C(){};
};
class D: pub lic C{};
D d;
const C &rc=d;
const D &rd=dynamic_cast<const D &>(rc);//动态转换:在类继承体系里上下转换,因必须在编译时检查(RTTI)而得名

Java

Java中並不允许將一个宣告为float类型的变量赋值给一个宣告为int类型的变量,但是C和C++会自动把float类型的变量捨去小數并赋值给int类型的变量。

int num1;
float pi=3.14159;
num1=pi;  //賦值錯誤

C#

在C#中,如果要隱藏一個繼承的成員函數,需加上new關鍵字來說明該成員函數是隱藏的,即便不使用new關鍵字來說明隱藏也能通過編譯產生隱藏效果,但仍會產生編譯警告。[1]

public class BaseC
{public int x;public void Invoke() { }
}
public class DerivedC : BaseC
{new public void Invoke() { } //隱藏繼承自BaseC的Invoke()成員函數
}

C#在switch語法中的case標記代码块內,如果沒有gotoreturnthrow跳離語法,一定得加上break語法。

switch (caseSwitch)
{case 1:Console.WriteLine("Case 1...");//在此撰寫break或其他跳離語法,否則將產生編譯錯誤case 2:Console.WriteLine("... and/or Case 2");break;
}

来源:维基百科

语法糖(Syntactic sugar)/ 语法盐(syntactic salt)相关推荐

  1. syntactic sugar - 语法糖 - 糖衣语法

    syntactic sugar - 语法糖 - 糖衣语法 语法糖 (syntactic sugar),亦称为糖衣语法,是英国计算机科学家彼得 - 约翰 - 兰达 (Peter J. Landin) 发 ...

  2. 语法糖(Syntax Sugar)Python

    语法糖让程序更加简洁,有更高的可读性 连续比较 1 < x < 10 (x>1 and x<10) 三元表达式(结果一 if  判断条件 else 结果二) 推导表达式 推导表 ...

  3. python3语法糖_python的语法糖

    # -*- coding: utf-8 -*- def deco(func): print("before myfunc() called.") func() print(&quo ...

  4. Java的12个语法糖【转】

    本文转载自公众号  Hollis 原创: 会反编译的 Hollis 侵权删 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学 ...

  5. 不了解这12个语法糖,别说你会Java!

    作者:Hollis 微信公众号:Hollis 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的 ...

  6. Java 语法糖详解

    语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序 ...

  7. 在Java中12个常见的语法糖!

    作者 l Hollis 来源公众号 l Hollis(ID:hollischuang) 跟着Hollis大佬的脚步,学学学! 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧, ...

  8. 阿里云面试:什么是语法糖?Java中有哪些语法糖?

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  9. 什么是语法糖?Java中有哪些语法糖?

    本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理 1 语法糖 语 ...

  10. Java 中的语法糖,真甜。

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 我们在日常开发中经常会使用到诸如泛型.自动拆箱和装箱.内部 ...

最新文章

  1. 微信小程序如何进行登录授权和获取用户信息
  2. PCI与PXI的区别
  3. 【算法】anchor free 和 anchor based 目标检测模型
  4. 截取字符串,但要保证汉字不被截取半个
  5. 实战 IE8 开发人员工具
  6. 【计算机网络】wireshark数据流追踪、图像抓取(转)
  7. ping,python实现批量ping包工具--小案例v3优化版本
  8. 农学院计算机考试题,天津农学院计算机考试参考.doc
  9. 机器学习基石和机器学习技法_机器学习和洞穴寓言寓言
  10. 麦氏细菌浊度分析仪的校准物质选择
  11. [ERROR] Failed to execute goal org.mortbay.jetty:jetty-maven-plugin:8.1.12.v20130726:run (default-cl
  12. xp重启计算机的快捷键,xp电脑关机重启快捷键是什么
  13. 嵌套在iframe页面打印去掉页眉页尾
  14. 中国历史上5个谣言,单是第1条就骗了不少人!
  15. 六度分离(Six Degrees of Separation)理论
  16. hdu 6656 Final Exam
  17. 一种在Houdini中让顶点动画循环的简单方法
  18. 使用Altium Designer绘制一个STM32系统的电路原理图
  19. 怎么把视频里的音乐提取成音频?一分钟帮你搞定
  20. 命令行删除文件夹及文件夹下文件

热门文章

  1. 「ZBrush」学习ZB出来可以从事什么工作
  2. 用python花猫_Python竟能画这么漂亮的花,帅呆了(代码分享)
  3. [死磕 Spring 21/43] --- IOC 之 Factory 实例化 bean
  4. 多变量微积分笔记(1)——向量和矩阵
  5. android控制wifi,Android控制wifi开关
  6. WSL gcc -m32 readdir 出错: Value too large for defined data type
  7. Pexels Videos – 可以免费商业使用的短视频
  8. vipJr联合朵拉举办童模大赛 潮童萌娃自信来袭
  9. Cannot find SourceMap 'XXX.js.map'问题解决
  10. 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发...