首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于单行代码块,首选{...}而不是do...end。但是错误

的使用了do...end的情况也是存在的。

在Ruby中,do...end和{...}都可以用来定义一个代码块,它们的功能是相同的。但是在单行代码块的情况下,使用{...}更为常见和推荐。

使用{...}的主要优势是简洁性和可读性。{...}通常比do...end更短,更直观。它可以更好地适应单行代码的情况,使代码更加紧凑和易于阅读。

以下是一个示例:

代码语言:ruby
复制
numbers = [1, 2, 3, 4, 5]

# 使用{...}定义单行代码块
numbers.each { |n| puts n }

# 使用do...end定义单行代码块(错误示例)
numbers.each do |n| puts n end

在上面的示例中,使用{...}定义的单行代码块更加简洁和易读。而使用do...end定义的单行代码块在这种情况下是错误的,因为它会导致语法错误。

需要注意的是,do...end在多行代码块的情况下仍然是常见和推荐的用法。例如:

代码语言:ruby
复制
numbers.each do |n|
  puts n
  puts "Hello"
end

总结起来,对于单行代码块,首选{...}而不是do...end。但是在多行代码块的情况下,do...end仍然是常见和推荐的用法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》10-12章笔记

包括单行声明)中每个常量所处位置在块中的偏移值(从零开始)。...iota的值和在const块中第几行有关,并不是在哪第一次使用都是0 ---- 位于同一行的iota即便出现多次,其值也是一样的: 图片 ---- 如果要略过iota = 0,而从iota...= 1开始正式定义枚举常量,可以效仿下面的代码: 图片 ---- 图片 iota虽然是第一次使用,但它在const块的第二行,所以值为1,而不是0 ---- 举一个“反例”:在一些枚举常量名称与其初始值有强烈对应关系的时候...对于复合类型,我们应该首选Go提供的复合字面值作为初值构造器。对于不同复合类型,我们要记住下面几点: 对于零值不适用的场景,我们要为变量赋予一定的初值。...对于复合类型,我们应该首选Go提供的复合字面值作为初值构造器。

56150

Python全网最全基础课程笔记(一)——基础入门

异常处理 Python提供了异常处理机制,允许程序在遇到错误时执行特定的代码块,而不是直接崩溃。try-except语句用于捕获和处理异常。...Python支持两种主要类型的注释:单行注释和多行注释(也被称为块注释)。 1、单行注释 单行注释以井号(#)开头,井号后面的所有内容都被视为注释,直到该行的末尾。Python解释器会忽略这些内容。...但是,你可以通过几种方式来实现多行注释的效果。 使用多个单行注释 这是最直接的方法,通过在每行的开始都添加#来创建多行注释。...不要注释代码如何工作:好的代码应该自我解释。如果代码难以理解,可能需要重构而不是添加注释。 注释复杂的逻辑:对于复杂的算法或逻辑,注释可以帮助理解其工作原理。...在Python中,代码块是通过缩进来定义的,而不是像其他许多编程语言那样使用大括号{}。这意味着Python对缩进的敏感度非常高,错误的缩进会导致语法错误(IndentationError)。

23400
  • 编写高质量可维护的代码:一目了然的注释

    前言 有一些人认为,好的代码是自我解释的。合适的命名和优秀的代码的确可以减轻开发人员阅读代码的工作量,对于不是特别复杂的代码可能确实可以做到自我解释。...,待实现的功能在说明中会简略说明 FIXME 在该注释处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明 XXX 在该注释处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进...但是在 LESS 和 SCSS 中支持注释的语法和 JS 中保持一致,有单行注释 // 和多行注释 /* */ 两种。单行注释编译之后不会被保留。...单行注释为什么有时候写在代码上方,有时候写在代码后方? 注释可以书写在代码中的任意位置。个人理解,一般写在代码上方的时候意为对后面一段代码的注释,而写在代码后方的时候意为对本行代码的注释。...众所周知,注释的代码是不会被执行的。但是小编在查资料时看到了一段比较有意思的代码, Java 中的一行注释“被执行”了?

    1.2K20

    Python|Google Python样式指南(2)

    对于子类可能会造成混淆。 2.13.4 结论 使用新代码中的属性来访问或设置数据,而通常情况下,这些属性本可以使用简单,轻量级的访问器或设置器方法。属性应使用@property装饰器创建。...2.14.3 缺点 对于C / C ++开发人员来说可能看起来很奇怪。 2.14.4 结论 如果可能,请使用“隐式”假,例如,if foo:而不是if foo != []:。...您可以将一个已知为整数(而不是的结果len())的值与整数0进行比较。 2.15 过时的语言特性 尽可能使用字符串方法而不是字符串模块。使用函数调用语法而不是apply。...如果函数参数是内联lambda,则使用列表理解和for循环,而不是filter和map。使用for循环而不是reduce。 2.15.1 定义 当前版本的Python提供了人们通常更喜欢的替代构造。...虽然现有的代码通常是在2.7的基础上编写的,但是有一些简单的事情可以让代码更加明确地表达其意图,从而更好地准备在python3下使用而不需要修改。

    72230

    JavaScript基础学习--02属性操作

    --》Odiv.fontSize) 2、class 不是属性(width、src、style),也不是关键字(var),而是保留字,所以Object.class=XX错误,--》Object.className...首先input(submit)和button,考虑到浏览器的通用性首选input,但是考虑到表现力(button中value和显示文字可以不同)首选button。      ...所以相对于定义式函数来说性能好,但需要严格按照先定义后使用的原则。          ...但是例如延时执行、ajax异步加载看起来像是“多线程”,其实是“回调”,类似于操作系统中的“中断和响应”,比如ajax异步加载,代码执行到ajax部分时,代码中断并开始往下执行,当ajax请求数据返回时...,再“回调”执行ajax(此时中断其他正在执行的代码《如果有正在执行的代码的话》),最后再执行剩余代码。

    1.8K90

    建立成功的 Python 环境的 4 个基本工具

    二十年来,我为它撰写了很多本书,而它仍然是我的首选语言。虽然通常来说这门语言是简洁明了的,但是(正如 xkcd 讽刺的),从来没有人说过配置 Python 环境也是一样的简单。...使用 virtualenvwrapper 让虚拟环境更简单 使用 pyenv 安装 Python 的一个好处是,你所有后继安装的 Python 解释器环境都是你自己的,而不是操作系统层面的。...虽然在 Python 本身内部安装东西通常不是最好的选择,但有一个例外:在上面选择的 “首选” Python 中,安装并配置 virtualenvwrapper。...对于每个新项目,我都会包含一个 requirements.in 文件,(通常)只有以下内容: . 是的,没错。只有一个点的单行。...这与 Twisted==18.1 这样的确切依赖关系形成了鲜明对比,后者在需要一个特性或错误修复时,难以升级到新版本的库。 .

    43510

    python笔记:#004#注释

    注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02....单行注释(行注释) 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 示例代码如下: # 这是第一个单行注释 print("hello python") 为了保证代码的可读性...,# 后面建议先添加一个空格,然后再编写相应的说明文字 在代码后面增加的单行注释 在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字 但是,需要注意的是,为了保证代码的可读性,注释和代码之间...多行注释(块注释) 如果希望编写的 注释信息很多,一行无法显示,就可以使用多行注释 要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以) 示例代码如下: ""...注释不是越多越好,对于一目了然的代码,不需要添加注释 对于 复杂的操作,应该在操作开始前写上若干行注释 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)

    77170

    代码美化的艺术

    为了衬托“艺术”二字,可能叫“代码美化”更贴切一点,但是本文的深度远没有标题那么宏大。 在我看来,代码质量不仅体现在逻辑上,也要体现在形式上。...首先这条规范是 Python 编码风格的建议,而 Python 的代码是以缩进代表代码块,类、函数等在定义时也没有大括号及小括号,算上括号前的空格,这就比一般的代码少几个字符。...另外,Angular 的风格指南建议不要为了精简变量命名而损失易读性,所以很多时候函数命名可能很长,再加上类型系统及链式调用等,单行代码很容易超过 80 个字符,这样就会造成过多的折行。...下面是一段使用 80 字符宽度格式化的 TS 代码: 我们再看一下扩大到 100 字符之后的效果: 这段代码或许还不是最典型的例子,但是也能看出两者的不同,在实际的业务当中,类似的折行可能更多,而从我个人的角度来看...在 首选项-设置-扩展-HTML,设置 Wrap Attributes 属性,选择 preserve-aligned(保留属性的包装,但对齐),这个选项允许多个标签单行显示。

    2K20

    代码美化的艺术

    首先这条规范是 Python 编码风格的建议,而 Python 的代码是以缩进代表代码块,类、函数等在定义时也没有大括号及小括号,算上括号前的空格,这就比一般的代码少几个字符。...另外,Angular 的代码风格建议不要为了精简变量命名而损失易读性,所以很多时候函数命名可能很长,再加上类型系统及链式调用等,单行代码很容易超过 80 个字符,这样就会造成过多的折行。...这段代码或许还不是最典型的例子,但是也能看出两者的不同,在实际的业务当中,类似的折行可能更多,而从我个人的角度来看,过多的折行反而破坏了代码的完整度。...在 首选项-设置-扩展-HTML,设置 Wrap Attributes属性,选择 preserve-aligned(保留属性的包装,但对齐),这个选项允许单行显示多个标签。...总结 代码美化只是一种形式,它不会对逻辑产生任何影响,但是好的代码格式会间接影响我们编码的速度,甚至影响到代码的质量。

    2K20

    python笔记:#004#注释

    注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02....单行注释(行注释) 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 示例代码如下: # 这是第一个单行注释 print("hello python") 为了保证代码的可读性...,# 后面建议先添加一个空格,然后再编写相应的说明文字 在代码后面增加的单行注释 在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字 但是,需要注意的是,为了保证代码的可读性,注释和代码之间...多行注释(块注释) 如果希望编写的 注释信息很多,一行无法显示,就可以使用多行注释 要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以) 示例代码如下: ""...注释不是越多越好,对于一目了然的代码,不需要添加注释 对于 复杂的操作,应该在操作开始前写上若干行注释 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)

    56430

    (译) Understanding Elixir Macros, Part 2 - Micro Theory

    可能有一些内容会和上一篇重复, 但我认为这对于理解运作原理和 AST 的生成很有帮助. 掌握了这些以后, 你对于自己的宏代码就更有信心了....大多数时候 hygiene 是我们想要的效果, 但是也有例外. 有时候, 可能需要创建在调用者作用域内可用的变量....这里再提一下 do...end 块. 任何时候发送一个 do...end 块给一个宏, 都相当于发送一个带有 :do 键的关键词列表(keywords list)....但是列表还保持着它的形状. 这仍然是一个键为 :a 和 :b 的关键词列表. 将它们放在一起 为什么这些都很重要?...因为在宏代码中, 您可以很容易地从关键字列表中获取所需要的选项, 而不需要分析一些令人费解的AST.

    14840

    编写灵活、稳定、高质量的CSS代码的规范

    (3)为了代码的易读性,在每个声明块的左花括号前添加一个空格。 (4)声明块的右花括号应当单独成行。 (5)每条声明语句之后应该插入一个空格。...(6)为了获得更准确的错误报告,每条声明都应该独占一行。 (7)所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但是,如果省略这个分号,你的代码可能更易出错。...六、单行规则声明 6.1 放在一行 对于只包含一条声明的样式,为了易读性和便于快速编辑,建议将语句放在同一行。对于带有多条声明的样式,还是应当将声明分为多行。...如果是单行单条声明,你就不会忽略这个错误;如果是单行多条声明的话,你就要仔细分析避免漏掉错误了。 6.3 Example ?...十一、class 命名 11.1 规范 (1)class 名称中只能出现小写字符和破折号(dashe)(不是下划线,也不是驼峰命名法)。

    1.2K20

    谷歌R语言格式指南

    赋值:使用“而不是“=” 9. 分号:不要使用 10. 整体布局和顺序 11. 注释准则:所有的注释都应该以#开头并且紧跟一个空格,如果注解与代码在同一行内,那么在#之前需加两个空格 12....变量名的首选形式是全部采用小写字母并且用小数点(.)来区分词(variable.name),但是variableName也是可以接受的;函数名首字母要大写并且不带有小数点(FunctionName);常量和函数名类似...例外:当创建一个类对象,函数名(构造的)和类应该相互匹配(例如:lm) 常量:kConstantName 语法 单行长度 单行的最大长度为80个字符 缩进 在缩进代码的时候,用两个空格。...用“而不是等号“=”。 好的例子—— x <- 5 坏的例子—— x = 5 分号 不要用分号作为行的结束,或者利用分号在一行中写上多个命令。...◆ ◆ ◆ TODO风格 在代码中始终用相同的TODO风格 TODO(username):明确说明要采取的行动 语言 附加 使用attach出现错误的可能性很高。避免使用。

    95230

    【愚公系列】2021年12月 Python教学课程 08-基本语法

    哪怕你输入的是个数字 1,返回给你的只会是字符 串“1”,而不是 整数 1。...“123”, “283242”的字符串,转化没问题,但是对于包含字符、特殊字 符的字符串就没办法转化了,会弹出异常错误。...python 变量更像是指针,而不是数据存 储区域 变量名在首次赋值时会被创建 在首次将值赋值给变量时创建其变量名 变量名在引用前必须先赋值 使用尚未进行赋值的变量名是一种错误 示例: spam...代码块:为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、 函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号( : )结束。...但是空白的作用在于 分隔两段不同功能或含义的代码,便于日后代码的维护或重构。 PEP8 对于空行留白有专门的建议。 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。

    81420

    【响应式】foundation栅格布局的“尝鲜”与“填坑”

    网格总共分为为12列,如你所见对于small 2 + 10 = 12,对于medium 6 + 6 =12 ......(这应该是很多新手会犯的错误) demo: 大型设备:(单行占全屏100%) ? 中型设备:(单行占全屏100%) ? 小型设备:(单行占全屏100%) ?...style ={{minHeight:'20px',background:'orange'}}> 如果这种写法能够成功,那么按照我们的设想,在小型屏上,因为small-up-2而单行显示两个栅格块...两个栅格占去了全屏的100%,而不是50%,这说明,通过size-number的宽度调节在块级栅格中已经失去了作用: 虽然在块级栅格中,你无法写行列栅格的类名去规定单个栅格的宽度,但你可以通过style...则只能在小型屏幕上显示 4.浮动栅格 foudation还有一个类叫浮动类(其实瓦觉得这似乎并没有特别大的用处毕竟来说你也可以自己写css,但是我个人感觉在foudation下写类名的话,代码看起来会好看一些

    1.3K110

    一篇文章教你快速了解并使用Python基础语法

    但是a&b,a-b-c这些都是不可以的。 另外要注意的是,由于l(小写的L)和数字1, 大小写的o与数字0在外观上的相似性,请尽量不要让它们相邻出现,保持语义的清晰性,确保不会发现错误认读的情况。...:param a: 加数 :param b: 加数 :return: 和 """ 代码头两行 很多时候,我们在一些py脚本文件的开头都能看到类似的以#开头的这样两行代码,它们不是注释,是一些设定...无论两种方式的哪一种,都指的是在linux下使用 第二行:代码的编码方式。不是程序要处理的数据的编码方式,而是程序自己本身的字符编码。...代码块:为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号( : )结束。...({})来表示代码块的。

    49220

    Python基本语法与数字类型

    而python2中则是ASCII编码,使用python2的话需要设置编码为UTF-8,这一点要区分。python3相对于python2区别比较大,并且两者不兼容。...注释 在python中,单行注释使用#,多行注释,用三个单引号 ''' 或者三个双引号 """ 将注释括起来示例: #这是单行注释 print("Hello World") ''' 这是多行注释,用三个单引号...可以自行定义,但是同一个代码块的空格数量必须一致。   代码示例: ? 错误示例: ? 如果运行的话,就会出现如下的错误提示: ?...空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。...缩进相同的一组语句构成一个代码块,我们称之代码组。

    77720

    Go语言基础

    缺点 2:错误处理 Go 语言通过函数和预期的调用代码简单地返回错误(或返回调用堆栈)而帮助开发者处理编译报错。...虽然这种方法是有效的,但很容易丢失错误发生的范围,因此我们也很难向用户提供有意义的错误信息。错误包(errors package)可以允许我们添加返回错误的上下文和堆栈追踪而解决该问题。...多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。...单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。...一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

    75421

    Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!

    我极为推崇 Python 的强制缩进语法,曾写过一篇《Python为什么使用缩进来划分代码块?》...介绍了这种设计的 8 个原因,但是,该文收到了大量的反对声,因此,我又补写了一篇《Python 的缩进是不是反人类的设计?》。...图片由于代码经常要分组分块,因此,“信号与噪声”一文将begin...end 及do...end 这两种当时常见的代码分组语法批评为糟糕的设计。...它不反对花括号“{...}”的语法设计,但是提出了一种更为激进的设计,也就是仅用缩进来控制代码分组(let the indenting control grouping)。按我的理解,P.J....图片只不过,相比于他提出的那些经典的编程规则,“使用缩进来分组代码块”不仅在 40 多年前是一条激进而少人接受的风格,它直到今天依然令某些人无法认同。

    36240

    Julia(控制流)

    该变量relation在if块内部声明,但在外部使用。但是,根据这种行为,请确保所有可能的代码路径都为变量定义了一个值。...:被密切相关的if- elseif- else语法,但被用在需要单个表达值之间的条件的选择,相对于代码长块的条件执行。它是大多数语言中唯一采用三个操作数的运算符而得名的: a ?...在这种情况下,对于特殊情况,最好终止程序,打印诊断错误消息,或者如果程序员提供了处理此类特殊情况的代码,则允许该代码采取适当的措施。...,一个将与x零进行比较,而不是捕获异常。...如果该try块由于异常而退出,则该异常将继续传播。阿catch块可结合try和finally为好。在这种情况下,该finally块将在catch处理完错误后运行。

    3.6K20
    领券