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

《Effective-Ruby》读书笔记

第 3 条:避免使用 Ruby 中古怪的 Perl 风格语法 推荐使用 String#match 替代 String#=~。前者将匹配信息以 MatchDate 对象返回,而非几个特殊的全局变量。...避免使用隐式读写全局变量 $_ 的方法(比如,Kernel#print、Regexp#~ 等) # 这段代码中有两个 Perl 语法。...每个对象都通过变量 superclass 链接,像单链表一样。这唯一的结果就是,当 Ruby 寻找一个方法时,它将以逆序访问访问每个模块,最后包含的模块最先访问到。...像数组和哈希这样的集合类几乎已经是每个 Ruby 程序不可或缺的了,如果你还不熟悉 Enumberable 模块中定义的方法,你可能已经自己写了相当多的 Enumberable 模块已经具备的方法,知识你还不知道而已...IRB::ExtendCommandBundle 中的模块中自定义 IRB 命令 利用下划线变量("_")来获取上一个表达式的结果(例如,last_elem = _) irb 命令可以用来创建一个新的会话

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

    如何从零开始学一门程序语言?

    python的shell(python或ipython)提供了一个语法和库函数的试验场,对初学这门语言来说帮助很大。想弄通python的数据结构,在shell下练习半小时基本就懂了。...除此之外,你要了解大概该语言的社区中在时间轴上都出过什么样的产品。这些都会加深你对语言的理解和认同感。 学习语言的思想(哲学)很重要,这体现在语言的设计,语法,甚至整个社区的行为。...将一个数字转化成字符串,在python里你大概会这么做: In [1]: str(10) Out[1]: '10' 但在ruby里你应该这么做: irb(main):001:0> 10.to_s =>...ruby作者从smalltalk和perl的影响很大,所以ruby里一切都是对象(smalltalk),做一件事可以有多种方法(perl)。...ruby的作者赋予了ruby灵活的控制权,让你可以改变系统的行为(比如可以open一个类库中的class修订),又有点像lisp。

    78660

    Java转Ruby【快速入门】

    命令: irb irb(main):001:0> puts "Hello World!" Hello World! => nil 你就能看到紧跟着你的输入会有一个 Hello World!...至少我们可以直观的感受到: 不用生命变量,直接 = 就好 每条 Ruby 代码都会返回某个值 从 Java 到 Ruby Java 非常成熟,并且通过 Spring 的加持得到了许多企业的青睐,但是不知道大家有没有感受到一点...方法调用的括号通常是可选的,经常被省略。 一切皆对象,包括像 2 和 3.14159 这样的数字。 没有静态类型检查。 变量名只是标签。它们没有相应的类型。 没有类型声明。...,如果像 Java 那样一遍一遍为每一个变量写 getter/setter 就有些冗杂了,Ruby 为我们提供了一些方便的存取器。...不知道您有没有发现,Ruby 没有提供多重继承的功能,但 Ruby 的模板几乎消除了多重继承的需要,提供了一种名为 mixin 的装置。

    3.2K50

    红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02

    irb(main):005:0> 100.class => Integer irb(main):004:0> Integer.superclass => Numeric     31位以内的整数为 Fixnum...也像Python那样可以使用类似通配符的方式格式化输出: irb(main):022:0> "%s: %f" % ["pi", Math::PI] => "pi: 3.141593"     和其他语言不同的是...,Ruby3中的字符串是可变对象: irb(main):028:0> ss = "123" => "123" irb(main):029:0> ss[0] => "1" irb(main):030:0>...与此同时,还可以通过对象的的frozen?属性判断类型是否可变。 irb(main):035:0> "123".frozen? => false irb(main):036:0> 3.frozen?...符号不可以像其他变量一样对它进行赋值运算。比如这样的写法是错误的:myname = "test"。 相反符号可以作为值赋给其他变量比如mystring = :myname。

    1.5K20

    Efficiently traversing InnoDB B+Trees with the page directory (9.利用页目录实现对B+树的高效遍历)

    191 conventional 4 (i=4) 2 112 supremum 5 如果一个页面完全满了,页面目录可能看起来像这样...相反,可以使用交互式的Ruby shell irb。(注意,innodb_ruby中的这个功能只是为了说明和学习的目的。它不应该被用作其他用途。)...交互式shell可以设置类似于之前innodb_space命令的配置: $ irb -r rubygems -r innodb irb> require "....irb> index = space.index(3) 因为我们感兴趣的主要是在这里探索,调试输出应该启用,以便各种索引遍历操作可以看到: irb> index.debug = true innodb_ruby...线性搜索 首先,为了调试的目的,我们将重置索引跟踪的内部统计信息(计数器): irb> index.reset_stats 接下来,在我们的100万行表中对关键字“10000”进行线性搜索: irb>

    47631

    MacOS下SVN迁移Git踩坑记

    First Blood 之前在Windows环境下进行svn到git的迁移是很简单的,参考官方文档。...可是在macOS环境下(macOS High Sierra 10.13.2),输入: $ git svn 神奇的事情发生了,报了以下错误: can't locate SVN/Core.pm in @INC...重新分析,git的常规命令,像更新、提交等都可以正常使用,唯独git svn执行会报错,会不会是git中某个组件有问题,Google之后查到可以单独安装: $ brew install git svn...一边下载过程中一边继续Google看有没有别的解决方法,终于在踏破铁鞋无觅处之后,找到了最终解决办法。 4. 终极方法 打开用户协议,最后选择agree。...xcodebuild -license 安装 Command Line Tools $ xcode-select --install 使用cpan安装 SVN::Core包 cpan是下载、安装、更新及管理的Perl

    3.3K50

    Ipython 解释器

    进入ipython 通常我们并不使用Python自带的解释器,而是使用另一个比较方便的解释器——ipython解释器,命令行下输入: ipython 即可进入ipython解释器。...所有在python解释器下可以运行的代码都可以在ipython解释器下运行: print "hello, world" hello, world 可以进行简单赋值操作: a = 1 直接在解释器中输入变量名...,会显示变量的值(不需要加print): a 1 b = [1, 2, 3] ipython magic命令 ipython解释器提供了很多以百分号%开头的magic命令,这些命令很像linux系统下的命令行命令...%%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%latex %%perl %%prun...%rmdir demo_test %hist ipython 使用 使用 ? 查看函数的帮助: sum? 使用 ??

    1.2K10

    18 个 Jupyter Notebook 小技巧,帮助你快速腾飞

    5、IPython 魔法命令行 上面看到的%matplotlib就是IPython魔术命令的一个示例,基于IPython内核,Jupyter可以访问IPython内核中的所有魔法,它们可以让我们更轻松的使用...%%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%perl %%prun %%pypy %%...8、IPython 魔法-%load 从外部脚本插入代码 这个魔法语言,可以用外部脚本替换单元格的内容,可以使用计算机上的文件作为源,也可以使用URL。...9、IPython 魔法-%store 在notebook之间传递变 %store命令允许我们在两个不同的notebook之间传递变量。...只需在每个要使用内核的单元格的开头使用ipython magics和内核名称: %%bash %%HTML %%python2 %%python3 %%ruby %%perl %%bash for i

    1.2K20

    为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字)

    例如John Hunter是Matplotlib的创始人,在2012年他去世前的几周,他发表了很棒的SciPy演讲。 当中他谈到了Pre-Python,他有各种工作进程的大杂烩Perl脚本C++。...同样的如果你熟悉IPython项目、Jupyter项目,那你肯定知道Fernando Perez,他创建了IPython。...他也有类似五花八门的工具,C、C++、Unix(awk/sed/sh)Perl、IDL、Mathematica。 想到Python出现之前的科学就很可怕。...如今我们熟知的库如Matplotlib、SciPy、IPython,它们的目标很清晰。社区一直在演变。 我认为在SciPy时代的关键会议是SciPy大会。...Conda的packaging发布于2012年,这真的改变了我使用Python的方式,改变了人们做事的方式。 以及2012年的IPython项目,后来更名为Jupyter。

    89160

    ABB集成力控技术: 让机器人变得敏感起来

    配备ABB集成力控技术的机器人能根据触觉传感器的实时回馈应对制造中的不确定因素,灵敏度堪比人手,编程时间也可缩短多达70%。...为解决这一难题,ABB成功开发了让机器人变得更“聪明”的集成力控技术。配备该技术的机器人能根据外部实时回馈信号应对制造过程中的细微变化,像人类一样拿捏易碎物品或执行精密作业。...ABB提供3种集成式传感器,兼容IRB 140到IRB 6700的大部分工业机器人。传感器容量范围为165 N/15 Nm至2500 N/400 Nm。...ABB集成力控技术 “集成力控技术将传统机器人自动化的应用范围拓展到了以往无法企及的领域。”...“与‘ABB集成视觉’之类的视觉引导技术相结合,ABB 集成力控技术将使机器人释放无穷潜能,在过去只能依赖熟练工的作业环节中充分发挥自动化的优势。”Eriksson补充道。

    76950

    2015 Bossie评选:最佳开源大数据工具

    开发人员可以使用原生JSON-over-HTTP接口或常用的几个开发语言进行交互,包括Ruby,Python,PHP,Perl,Java,JavaScript等。 8....像其他的非关系型的分布式数据存储一样,HBase的查询结果反馈非常迅速,因此擅长的是经常用于后台搜索引擎,如易趣网,博科和雅虎等网站。...像大多数其他的分析应用一样,Kylin支持多种访问方法,包括JDBC,ODBC API进行编程访问以及REST API接口。 13....jupyter是“IPython”剥离出来成为一个独立的软件包的语言无关的部分。虽然jupyter本身是用Python写的,该系统是模块化的。...现在你可以有一个和iPython一样的界面,在笔记本电脑中方便共享代码,使得文档和数据可视化。 至少已经支持50个语言的内核,包括Lisp,R,F #,Perl,Ruby,Scala等。

    1.6K90

    Python 第三方库

    1 Python 第三方库 Python语言与Perl,C和Java等语言有许多相似之处。但是,也存在一些差异。 在本章中我们将来学习Python的基础语法,让你快速学会Python编程。...Python 常用的标准库以及第三方库有哪些? requests。人性化的HTTP请求库,这还有不知道的么... pip。Python 包和依赖关系管理工具,还有不用的么。 virtualenv。...创建独立 Python 环境的工具。 IPython。附带非常额外功能的交互环境。 httpie。一个命令行HTTP 客户端,cURL 的替代品,易用性更好。 you-get。...用来下载 YouTube 视频的工具。 Pillow。PIL的fork版本,操作图像库。 Cython。优化的 Python 静态编译器。...使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升。 pycodestyle。就是原来的pep8,帮你检查代码是否符合PEP8标准。

    73731
    领券