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

Ruby 的魔法世界——编程(一)

什么是编程(Metaprogramming) 编程就是编写能写代码的代码。 能写代码的代码……是指代码生成器么?Java注解?C++模板?这些在广义上也属于编程。...不过这些过程发生在编译期(compiler time),称为静态编程;本文准备介绍的 Ruby 编程,是编写能在运行时(runtime)操作自身的代码,称为动态编程。...所以编程其实无处不在,几乎可以说编程就是动态语言的设计模式,等到掌握了编程的技巧之后,你会发现: 根本没有什么编程,从来只有编程而已。 ?...这波我给满分.jpg 对象模型 要介绍 Ruby 编程,首先要介绍一下 Ruby 的对象模型。 Ruby 号称是一门“纯”面向对象的语言,那到底有多纯呢,先看个图: ?...参考:《Ruby 编程

87550

Ruby编程(读书笔记)-第1章

第1章 这个字眼 编程是编写能写代码的代码 1.1 鬼城与自由市场 语言构件(language construct)包含各种成员(变量、类、方法等)。...而在另外一些语言(如Ruby)中,运行时更像是一个繁忙的自由市场。大多数语言构件依然存在,而且正四处忙碌着。你甚至可以抓住一个构件,询问它关于它自身的问题。...类和对象都是Ruby世界的一等公民,你可以问出很多信息来。 Ruby除了可以在运行时询问语言构件,还能在运行时创建它们。在程序运行时,能否在welcome方法之外再添加一个实例方法?...Bob只要在Ruby命令行解释器中输入如下命令,就能把一部电影加载到数据库里: movie = Movie.new(1) movie.title = "Doctor Strangelove" movie.director...如果你会元编程,用很少的代码就可以解决这个问题。” 1.2.2 进入编程的世界 未完待续

33520
您找到你想要的搜索结果了吗?
是的
没有找到

Ruby编程(读书笔记)-第1章

第1章 这个字眼 编程是编写能写代码的代码 1.1 鬼城与自由市场 语言构件(language construct)包含各种成员(变量、类、方法等)。...而在另外一些语言(如Ruby)中,运行时更像是一个繁忙的自由市场。大多数语言构件依然存在,而且正四处忙碌着。你甚至可以抓住一个构件,询问它关于它自身的问题。...类和对象都是Ruby世界的一等公民,你可以问出很多信息来。 [ruby] Ruby除了可以在运行时询问语言构件,还能在运行时创建它们。在程序运行时,能否在welcome方法之外再添加一个实例方法?...Bob只要在Ruby命令行解释器中输入如下命令,就能把一部电影加载到数据库里: movie = Movie.new(1) movie.title = "Doctor Strangelove" movie.director...如果你会元编程,用很少的代码就可以解决这个问题。” 1.2.2 进入编程的世界 ==未完待续==

46140

Python编程

大家好,又见面了,我是全栈君   简单定义“编程是一种编写计算机程序的技术,这些程序可以将自己看做数据,因此你可以在运行时对它进行内审、生成和/或修改”,本博参考>将对编程内容进行详细描述...概述   Python编程有两种方法,一是采用类似“装饰器”的工具对基本元素(例如函数、类、类型)内审和对其进行实时创建和修改,二是运用类型”类”的方式对类实例的创建过程进行修改,甚至于允许重新设计...Python面对对象编程范式的实现。...类   类是Python的一个重要特性,是定义其他类的类,理解其工作方式,最重要的是要知道定义了对象实例的类也是对象,那么它一定有与其相关联的类,所有的类定义的基类都是内置的type类。...3.3 类的使用   类是一种非常强大的特性,但总是会是代码更加复杂,将其用于任意类型的类时,这可能会降低代码的鲁棒性,我们必须灵活的使用类。

30110

通过 for 循环,比较 Python 与 Ruby 编程思想的差别

Python 更像是基于 C 语言的“面向对象”编程的扩展。在基于 C 的 OO 中,就像 posix 文件描述符或 Win32 窗口句柄一样,语言并不强制将“方法”与对象本身绑定。...然而,Ruby 却将其颠倒过来。Ruby 将面向对象作为金字塔的基础。Ruby 在代码块中包含了混乱的过程世界,让对象使用这些过程块。...毫无疑问,当我从系统编程的角度接触 Python 时,它对我的观感来说是很自然的。具备着在必要的时候编写 C 语言的能力,它进化了,令那个世界更加安全。...难怪 Ruby 很适合开发人员构建更流畅、也许更安全的 API 和 DSL。Ruby 希望程序员对领域进行建模,而不是对编程环境进行建模,这对于许多工作来说,似乎是正确的方法。...往 期 回 顾 资讯 OpenAI真的open了,更加开放 资讯 Meta新语音模型可支持128种语言交流 资讯 Meta研发触觉手套助力宇宙 论坛 移动云区块链开发者论坛来了!

70720

编程语言大对决!Ruby和Python谁更可读?

---- 点击上方↑↑↑“OpenCV学堂”关注我来源:公众号 新智 授权 【导读】计算机编程语言Python和Ruby谁更易懂可读,网友们展开了激烈论战。...这不,关于编程语言Python和Ruby谁更可读,网友都吵翻了。 很多网友站队Ruby,这是为什么呢? Ruby大战Python 其实,Ruby和Python几乎没有区别。...一旦有人开始进行高级编程,你就想杀了他然后把他给埋了。 使用Ruby编写的Web应用开发框架Rails在很大程度上可以通过自主设计、良好的文档,以及已经编写问题答案的大量用户群来摆脱这些困境。...Ruby是一门非常一致的语言,但我认为人们真正迷恋 Ruby 的是编程,也包括我自己在内,很快你将需要在大脑中掌握大量上下文来理解所有正在发生的「魔力」。 有人就对其进行了反驳。...我希望看到Ruby能够让世界上每个程序员变得高效,享受编程,并且快乐编程。这是Ruby语言的主要目的。 有网友认为这篇文章就是在讽刺。

50920

编程语言大对决!Ruby和Python谁更可读?

---- 新智报道   编辑:Joey 桃子 【新智导读】计算机编程语言Python和Ruby谁更易懂可读,网友们展开了激烈论战。 也许很多人认为,编程只要被计算机读懂就可以了。...这不,关于编程语言Python和Ruby谁更可读,网友都吵翻了。 很多网友站队Ruby,这是为什么呢? Ruby大战Python 其实,Ruby和Python几乎没有区别。...一旦有人开始进行高级编程,你就想杀了他然后把他给埋了。 使用Ruby编写的Web应用开发框架Rails在很大程度上可以通过自主设计、良好的文档,以及已经编写问题答案的大量用户群来摆脱这些困境。...Ruby是一门非常一致的语言,但我认为人们真正迷恋 Ruby 的是编程,也包括我自己在内,很快你将需要在大脑中掌握大量上下文来理解所有正在发生的「魔力」。 有人就对其进行了反驳。...我希望看到Ruby能够让世界上每个程序员变得高效,享受编程,并且快乐编程。这是Ruby语言的主要目的。 有网友认为这篇文章就是在讽刺。

67620

通过 for 循环,比较 Python 与 Ruby 编程思想的差别

然而 Ruby 说:“在一些重要的情况下,我们不想给调用者太多能力。”所以 Ruby 让对象去控制它们被处理的方式,并要求开发人员遵循对象想要被交互的方式。Ruby 在数据处理上没那么强势。...Python 更像是基于 C 语言的“面向对象”编程的扩展。在基于 C 的 OO 中,就像 posix 文件描述符或 Win32 窗口句柄一样,语言并不强制将“方法”与对象本身绑定。...然而,Ruby 却将其颠倒过来。Ruby 将面向对象作为金字塔的基础。Ruby 在代码块中包含了混乱的过程世界,让对象使用这些过程块。...毫无疑问,当我从系统编程的角度接触 Python 时,它对我的观感来说是很自然的。具备着在必要的时候编写 C 语言的能力,它进化了,令那个世界更加安全。...难怪 Ruby 很适合开发人员构建更流畅、也许更安全的 API 和 DSL。Ruby 希望程序员对领域进行建模,而不是对编程环境进行建模,这对于许多工作来说,似乎是正确的方法。

94630

通过 for 循环,比较 Python 与 Ruby 编程思想的差别

然而 Ruby 说:“在一些重要的情况下,我们不想给调用者太多能力。”所以 Ruby 让对象去控制它们被处理的方式,并要求开发人员遵循对象想要被交互的方式。Ruby 在数据处理上没那么强势。...Python 更像是基于 C 语言的“面向对象”编程的扩展。在基于 C 的 OO 中,就像 posix 文件描述符或 Win32 窗口句柄一样,语言并不强制将“方法”与对象本身绑定。...然而,Ruby 却将其颠倒过来。Ruby 将面向对象作为金字塔的基础。Ruby 在代码块中包含了混乱的过程世界,让对象使用这些过程块。...毫无疑问,当我从系统编程的角度接触 Python 时,它对我的观感来说是很自然的。具备着在必要的时候编写 C 语言的能力,它进化了,令那个世界更加安全。...难怪 Ruby 很适合开发人员构建更流畅、也许更安全的 API 和 DSL。Ruby 希望程序员对领域进行建模,而不是对编程环境进行建模,这对于许多工作来说,似乎是正确的方法。

81310

什么是编程

下午的时候,张大胖洋洋得意地给Bill展示自己的工作成果,Bill说:“不错啊,都开始编程了!” “编程?” “对啊,你不是用程序来生成程序嘛,这就是一种编程。”...Bill 笑道:“你可以用动态语言,比如Ruby编程很强大,实现你这个功能简直是小菜一碟。”...即使是CSV文件发生了变化,也不需要额外运行代码生成器,只需要执行那段Ruby代码就行。 ? Bill问道:“怎么样,编程不错吧?”...张大胖说道:“嗯, 这Ruby编程能力很强大啊,可惜的是,我们的项目都是Java的,这动态的脚本语言Ruby没法直接使用,如果是微服务,对外提供的是HTTP的API,我可以学学Ruby,单独写个Ruby...Bill说:“其实吧,编程语言中,编程能力最强大的还属LISP,在LISP当中,程序和数据的表现形式是一致的,造就了它无以伦比的编程能力,LISP程序可以像操作数据一样操作代码。

88140

Ruby Programming | 连载 03 - Ruby 对象基础

一、Ruby 对象 Ruby 中所有的数据结构和值都是对象,包括基本的数字和字符串以及数组 Array、散列表 Hash 这样的复杂数据结构。...二、第一个 Ruby 程序 接下来将编写一个简单的汇率换算的工具,使用 Ruby 的面向对象特性来实现。...aus = amount_yuan*@@yuan_to_aus_rate return aus end end ex = Exchange.new print "输入要兑换的人民币金额()...Ruby 程序需要通过 Ruby 解释器来执行,该解释器名为 ruby,在代码文件目录下执行命令: ruby exchange.rb 输入兑换的人民币金额 2000,输出可兑换的澳币金额为: 输入要兑换的人民币金额...():2000 兑换的澳币金额为(刀):430.4 ruby 解释器可以检查语法错误,通过添加 -c 参数检查语法错误,*-w* 参数激活高级别的警告,如果语法正确输出如下: 如果语法有错误则会输出具体的错误信息和错误行

2K20

通过 for 循环,比较 Python 与 Ruby 编程思想的差别

然而 Ruby 说:“在一些重要的情况下,我们不想给调用者太多能力。”所以 Ruby 让对象去控制它们被处理的方式,并要求开发人员遵循对象想要被交互的方式。Ruby 在数据处理上没那么强势。...Python 更像是基于 C 语言的“面向对象”编程的扩展。在基于 C 的 OO 中,就像 posix 文件描述符或 Win32 窗口句柄一样,语言并不强制将“方法”与对象本身绑定。...然而,Ruby 却将其颠倒过来。Ruby 将面向对象作为金字塔的基础。Ruby 在代码块中包含了混乱的过程世界,让对象使用这些过程块。...毫无疑问,当我从系统编程的角度接触 Python 时,它对我的观感来说是很自然的。具备着在必要的时候编写 C 语言的能力,它进化了,令那个世界更加安全。...难怪 Ruby 很适合开发人员构建更流畅、也许更安全的 API 和 DSL。Ruby 希望程序员对领域进行建模,而不是对编程环境进行建模,这对于许多工作来说,似乎是正确的方法。

33510

Ruby Programming | 连载 02 - Ruby 语法基础

一、Ruby 基本语法 Ruby 的基本语法中包含了 Ruby 的基本运算符、I/O、控制流以及 Ruby 中的特殊对象和注释。...Ruby 是一门面向对象的编程语言,Ruby 中一切皆对象。Ruby 语言中包含的特殊对象如下: 操作 栗子 说明 默认对象 self self 关键字引用默认对象。...二、Ruby 标识符 Ruby 中的标识符类型不多,主要包含了 变量, 常量, 关键字, 方法名 等,而变量又包含了局部变量, 全局变量, 实例变量 和 类变量。...但是在组合单词命名的局部变量时,Ruby 通常约定使用下划线来作为命名规范,而不是驼峰命名法;Ruby 中推荐使用 first_name 而不是 firstName。...方法命名规范 Ruby 中的方法名的命名与局部变量的命名规则一致,但是 Ruby 中的一些方法名中包含了特殊字符,如 ?, !

5.9K10
领券