为什么 Ruby 使用 nil 来命名 null 对象?

2024-01-06

谷歌搜索但没有找到答案。

nil 这个名字有什么特别的吗?

nil的概念和其他语言中的null有什么不同吗?


好吧,“nil”是 Lisp 和 Smalltalk 中“无”具体化概念的传统名称†。 “null”一词用作形容词,意思是“空”,如“空列表”,即 nil。

同时,“null”传统上是 C 中的指针值,表示该指针不指向任何有效的内容。它指的是指针为 null 的事实(与 Lisp 使用该词的含义相同),但它本身被认为是一个值。

Matz 是 Smalltalk 和 Lisp 的粉丝,所以他采用了它们的术语。这两个术语之间的含义并没有真正的重要区别——其中一个只是 C 语言。

Actually, "nil" existed in a lot more languages than just those. Even Algol-68, the great granddaddy of C, called it "nil". I'm not sure if C invented "null" as the name for the null reference or just popularized it, but I'm pretty sure that all the modern languages using that term got it from C.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Ruby 使用 nil 来命名 null 对象? 的相关文章

  • Ruby 中救援的替代方案?

    好像我有begin rescue end我的代码中到处都是语句 这似乎不是正确的做法 谁能建议我如何捕获任何异常而不必将所有内容都放在里面begin rescue end 有什么方法可以让 Ruby 闭嘴并继续前进 即使出现异常也是如此 与
  • 使用 cookie 制作 Ruby Net::HTTP::Get 请求

    我想通过 ruby 打开我的 stackoverflow com 页面 我希望看到它就好像我已经过身份验证一样 I took usr来自 Google Chrome 的 cookie 并创建了以下代码片段 require net http
  • Rails JSON 多重嵌套关联

    我有一个对象 测试列表 其中包含问题和奖励问题 每个问题都有一个主题模型 我试图将它们全部包含在 JSON API 中 但我不断收到奇怪的难以理解的语法错误消息 我可以让它处理问题和主题或奖励问题和主题 但不能同时处理两者 这是我现在所拥有
  • 检索给定用户发表评论的所有帖子,Ruby on Rails

    我有用户 帖子和评论 用户只能对每个帖子发表一条评论 class User lt ActiveRecord Base has many posts has many comments end class Post lt ActiveReco
  • 在 Rails 控制器中存储对象的最佳方式(会话除外)?

    我有一个 Rails 控制器 class Controllername lt application def method1 obj API CALL session obj access token redirect to redirec
  • 声明实例变量迭代哈希!

    我想做以下事情 我想声明一个迭代字典的类的实例变量 假设我有这个哈希 hash key1 gt value1 key2 gt value2 key3 gt value3 我想将每个键作为类的实例变量 我想知道我是否可以声明迭代该哈希的变量
  • Capistrano RVM 和 Ubuntu RVM 不是一个函数,使用“rvm use ...”选择 rubies 将不起作用

    我第一次尝试在 ubuntu 服务器上部署我的应用程序 我一直遇到这个错误 2013 03 24 15 13 36 executing deploy run migrations executing rvm gemset use vapin
  • 使 diff-lcs 的输出可读

    我正在使用 diff lcs gem 输出两个 html 内容体之间的差异 这是示例内容 版本一 p Paragraph one Sentence one p p Paragraph two Another sentence p p Par
  • 无主键的 ActiveRecord 模型

    我有一个 ActiveRecord 模型GPA没有主键 class GPA lt ActiveRecord Base end 当我尝试打电话时GPA first to json I get TypeError false is not a
  • 运行“bundle install”失败并要求我运行“bundle install”

    事实上 当从我从 git 存储库克隆的现有 Rails 应用程序内部运行时 所有与 gem 相关的命令都会导致相同的错误消息 bundle install Could not find tzinfo 0 3 27 in any of the
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 无||假与假||红宝石中的零

    nil false回报false and false nil回报nil 有人对此有解释吗 在 Ruby 中 一切都是表达式 表达式将返回其中计算的最后一个值 对于您的两个示例 左侧 表达式的计算结果为假值 因此 Ruby 然后计算右侧并返回
  • Windows 上的 ruby​​ 中出现 SSL 错误

    我收到以下错误 C Users user Desktop folder gt ruby exchange rate rb C Ruby23 x64 lib ruby 2 3 0 net http rb 933 in connect nonb
  • ruby:类实例变量与实例变量

    我的想法是为来自不同国家的人们创建一个社区维基java因为读了很多解释 我无法理解任何东西 直到我真正尝试了一些东西 拼图的各个部分开始找到它们的位置 但我首先需要确保我做对了 来自这样的背景 我很困惑地发现 variable可能意味着两个
  • before_filter set_locale 除了控制器

    My routes rb MyApp Application routes draw do scope locale do all resources here end namespace blog do resources posts o
  • 在 Ruby 中按名称获取一个类?

    有一个包含模块和类名称的字符串 例如 Admin MetaDatasController 我如何获得实际课程 如果没有模块 以下代码将起作用 Kernel const get MetaDatasController 但它与模块中断 ruby
  • 如何按键按字母顺序对 Ruby 哈希进行排序

    我正在尝试按键按字母顺序对哈希进行排序 但如果不创建自己的排序类 我似乎无法找到一种方法来做到这一点 我发现下面的代码可以按值排序 如果它是整数 我正在尝试修改它 但没有任何运气 temp ninjas 36 temp pirates 12
  • 在 Rails 6 上添加外部 js 文件

    我在 app gt javascript gt packs 下创建了一个名为 custom 的文件夹 并放置以下外部 js metisMenu min js startmin js 然后在 app gt javascript gt pack
  • 登录西纳特拉?

    我无法弄清楚如何使用 Sinatra 记录消息 我不想记录请求 而是在我的应用程序中的某些点记录自定义消息 例如 当获取 URL 时 我想记录 Fetching url 这就是我想要的 指定日志级别的能力 例如 logger info Fe
  • 将用户输入转换为整数

    所以我有一个用户可以输入价格的表格 我正在尝试创建一个 before validation 来规范化数据 如果用户放置 则剪裁它 before validation do unless self price blank then self

随机推荐

  • 独立实施和托管实施之间是否存在有意义的区别?

    我的问题主要与第四节第六段 http www iso 9899 info n1570 html 4 p6 合规实施的两种形式是托管式和独立式 合格的托管实施应接受任何严格合格的程序 据我了解 这构成了典型的应用程序环境 包括文件系统 分配的
  • 通过单击缩放按钮放大和缩小图像(Javascript)

    我正在尝试通过两个缩放按钮 和 放大和缩小图像 问题是当图像为全屏尺寸 宽度 100 时 放大 会停止 我需要将图像缩放到比屏幕尺寸大得多 只是不知道如何做到这一点 我是 Javascript 初学者 所以我希望有人有动力帮助我解决这个 J
  • 日期转换程序中的奇怪错误

    我无法修复代码中的奇怪错误 我编写了一个程序来打印最初以 MM DD YYYY 格式编写的日期 格式为 月 DD YYYY 该程序很简单 我将日期存储在char数组 然后用strtok我分别获取月 日 年并存储指向它们的指针 在一个char
  • 如何将 std::string 传递给需要 char* 的函数? [复制]

    这个问题在这里已经有答案了 可能的重复 我可以从 C 字符串中获取非常量 C 字符串吗 https stackoverflow com questions 1919626 can i get a non const c string bac
  • BASH 中多列文件的反向排序顺序

    我有以下文件 1 2 3 1 4 5 1 6 7 2 3 5 5 2 1 我希望文件按第二列排序 但从最大数字 在本例中为 6 到最小数字 我尝试过 sort 1 2 file dat 但它按升序排序 而不是降序 结果应该是 1 6 7 1
  • 命令是否从 shell 脚本中的当前目录运行?

    在 bash shell 脚本中我尝试了这两个版本 java jar abc jar and CMD java jar abc jar CMD 第一个版本可以工作 第二个版本则抱怨找不到 abc jar 为什么 命令确实从 shell 脚本
  • 使用命令行开关将 PDF 另存为文本 - 可以做到吗?

    我需要使用命令行开关来执行 另存为文本 命令 理想情况下 我想要 使用命令行开关打开 PDF 使用命令行开关通过模仿 另存为文本 命令将 PDF 转换为文本文件 使用命令行关闭 PDF 这可能吗 如果是这样 那么有人知道该怎么做吗 也许你可
  • JavaFX 中的 MVVM。具有数据模型的控件

    我在fxml文件中定义了一个TableView 但我无法指定表的列 因为表将具有一些数据模型知识 这会违反MVVM 我创建了一个类 它提供 TableColumn 的集合并提供数据模型 我想更改相对于表中所选项目的按钮状态 如何在不违反MV
  • 为什么 (0 < 5 < 3) 返回 true?

    我在 jsfiddle net 上玩 我很好奇为什么这会返回 true if 0 lt 5 lt 3 alert True 这也是如此 if 0 lt 5 lt 2 alert True 但这并没有 if 0 lt 5 lt 1 alert
  • 将用户控件转换为服务器控件

    我想知道是否有人有将用户控件转换为 Web 控件的经验 理想情况下 我想将一些设计工作交给其他人 他们会给我精心布置的用户控件 然后 我就可以完成转换 编译 测试和部署的过程 在微软提出神奇的 转换为服务器控制 选项之前 看起来我一直坚持从
  • ImageIcon 的 getResources() - java

    我的第一个问题 几天来我一直试图解决这个问题 但我已经失去了耐心 以下是一些代码和我的项目结构 问题 我怎样才能得到getResources 在 eclipse 中工作并导入到 jar 后 谢谢您的帮助 public enum Icons
  • UIView 子类 initWithFrame 没有被调用?

    我有一个自定义 UIView 子类 在 IB 中 我指定了一个 占位符 UIView 并将该类设置为我的类名 我对 drawRect 方法的重写正在工作 并且背景着色正确 但 initWithFrame 没有触发 为什么 id initWi
  • 是否可以在 iOS 模拟器中进行边缘滑动?

    iOS 7 提供了UIScreenEdgePanGestureRecognizer它检测从屏幕边缘向内的滑动 可以使用Xcode中的iOS7模拟器来模拟这个手势吗 在屏幕区域外单击并拖动只会移动整个模拟器框架 在模拟器版本 11 4 上 我
  • 带有按列搜索字段的 Jhipster 表

    我在我的应用程序中使用 jhipster 我有一个表 我添加了分页和排序 但我还想在列中添加搜索字段 这可能吗 会是这样的http ng table com http ng table com 我的 HTML 是 div class tab
  • 使用 Python 的 Paramiko 自动执行 ssh 连接和程序执行

    我想使用 python 自动执行特定任务 除其他事项外 此任务包括使用 ssh 连接到远程服务器 并运行特定程序 称为prog out that 可能会也可能不会要求用户输入 经过一些研究并权衡我的选择后 我决定使用 Python 的 Pa
  • Google Datastore 强一致性和实体组最大大小

    在共享费用应用程序中 显示每个组的付款费用和共享费用详细信息 作为金融应用 很多操作都是事务性的 这就需要强一致性来保证数据的完整性 我们使用了实体组和祖先查询 这似乎解决了强一致性的问题 这导致了实体组的规模很大 由于共享 团体 现在是成
  • 反应:赋值左侧无效(NULL)

    我正在尝试提取名为tests stats 的个人函数的输出 我做了一个函数return陈述 return c list test 1 list test 2 list test 3 list test 4 其中每个list test i i
  • 如何在地图div之外添加Leaflet Routing Machine控件

    Leaflet 路由机 http www liedman net leaflet routing machine 容器div默认显示在地图上 我想将此div放在地图下方 有什么线索可以做到这一点吗 因此 您需要在地图div之外添加一个传单控
  • css, html help : 左右浮动,切断背景以扩展过去的div

    我有一个向左浮动的 div 和一个向右浮动的 div 我想更改背景颜色 它改变了背景 但它停在浮动 div 之前 当我把它们取下来时 它仍然具有我想要的正确背景颜色 div style border top 333 solid thin b
  • 为什么 Ruby 使用 nil 来命名 null 对象?

    谷歌搜索但没有找到答案 nil 这个名字有什么特别的吗 nil的概念和其他语言中的null有什么不同吗 好吧 nil 是 Lisp 和 Smalltalk 中 无 具体化概念的传统名称 null 一词用作形容词 意思是 空 如 空列表 即