You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术疑问:"end"与"end)"的区别是什么?

关于脚本中end与end)的区别

首先,这种差异几乎肯定和代码块的包裹与闭合逻辑有关,我来给你拆解清楚:

  • 单纯的end,一般是用来闭合脚本语言自带的结构化代码块,比如:

    • 在Lua里闭合if/while/for这类控制结构,或者普通的函数定义
    • 在Ruby里闭合do...end形式的代码块、类定义、方法定义

    举个Lua的直观例子:

    if score > 90 then
      print("优秀")
    end -- 这里的end单纯负责闭合if结构
    
  • 而end)里的右括号,是用来闭合前面包裹代码块的左括号,最常见于匿名函数(lambda表达式)的定义+立即调用场景:
    还是拿Lua举例,当你把匿名函数用括号包裹、准备立刻执行时,就会写成这样:

    -- 用括号包裹匿名函数,end之后的)用来闭合前面的左括号
    (function()
      print("这是一个立刻执行的匿名函数")
    end)() -- 最后的()是调用这个函数
    

    再比如Ruby里的类似写法:

    (lambda do
      puts "Ruby的匿名函数调用示例"
    end).call -- end后面的)闭合包裹lambda的左括号
    

简单总结:end负责闭合语言本身的结构化代码块,而end)里的)是补全代码块外部的括号包裹——前面有个未闭合的(,自然要在end之后加)来完成语法配对。

内容的提问来源于stack exchange,提问作者Shyvha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:39:06