为什么单语句块不要求使用分号? [英] Why do "single statement" blocks require not using semi-colons?

查看:15
本文介绍了为什么单语句块不要求使用分号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通常是一名C#程序员,在Delphi上有很多"有趣"的发现。最让我困惑的是Delphi中的单个语句。

示例C#块

if(x) 
  Foo();
else
  Bar();

Delphi块示例:

if x then
  Foo() //note missing semicolon
else
  Bar();
他们要求不带分号的目的到底是什么?有没有可以追溯到帕斯卡的历史原因?

推荐答案

PASCAL语言中的分号与C及其派生语言中的分号存在差异。

  • 在C中,分号是语句终止符
  • 在Pascal中,分号是语句分隔符

Wikipedia说明这一点的含义:

这种差异主要表现在两种情况:

  • 在PASCAL中,分号不能直接放在其他分号之前 而它在C中是必需的(除非使用BLOCK语句)
  • END前的最后一条语句不要求后跟 分号
可以将多余的分号放在结尾之前的最后一行, 从而正式插入空语句。

这篇关于为什么单语句块不要求使用分号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆