为什么专题提供为什么的最新资讯内容,帮你更好的了解为什么。
我使用符号的两种语言是Ruby和Erlang,我一直认为它们非常有用. Haskell确实有代数数据类型,但我仍然认为符号是非常方便的.令人想起的一个立即的用法是,因为符号与整数是同构的,所以你可以使用它们,使用整数或字符串“主键”. 原子的句法糖可以是次要的: – 某物或<某物>是一个原子所有原子是称为Atom的类型的实例,它导出Show和Eq.然后,您可以使用它来获取更多描述性的错误代码 ty
Ruby 1.9.2中的新哈希语法意味着我可以执行以下操作: my_hash = {a: 1, b: 2, c: 3} …相当于: my_hash = {:a => 1, :b => 2, :c => 3} 好的,所以使用旧的语法可以做到这一点(第一个键是一个整数): my_hash = {1 => 1, :b => 2, :c => 3} 我发现甚至可以混合新旧语法,如下所示: my_hash
“ Behavior of “round” function in Python”观察到,Python循环像这样漂浮: >>> round(0.45, 1) 0.5 >>> round(1.45, 1) 1.4 >>> round(2.45, 1) 2.5 >>> round(3.45, 1) 3.5 >>> round(4.45, 1) 4.5 >>> round(5.45, 1) 5.5 >>
据我所知, Ruby中基本上有三种不同的闭包:方法,procs和lambdas.我知道他们之间有区别,但是我们不能只是摆脱一种适应所有可能的用例的类型? 方法可以像procs和lambdas一样通过调用self.method(method_name)来传递,而且我在procs和lambdas之间知道的唯一显着的区别是,当你尝试使用return时,lambdas检查arity和procs会做疯狂的事
看到这个简单的 Ruby类: require 'byebug' class Foo def run byebug puts defined?(bar) puts bar.inspect bar = 'local string' puts defined?(bar) puts bar.inspect end def bar
我只是试图安装 Ruby 2.1,而是安装了2.1 Preview 1.这对我来说似乎很疯狂. 2.1出来了为什么RVM假设当我说rvm安装ruby-2.1.0,我的意思是rvm安装ruby-2.1.0-preview1?为什么它不符合我指定的确切版本,而不是以该子字符串开头的那个? 愚蠢的澄清问题(如果我有足够的声誉,我会发表评论),但最近更新了RVM? rvm得到稳定(或者如果你想生活在边缘,
我刚刚尝试了 Ruby,我遇到了String#to_i.假设我有这个代码: var1 = '6 sldasdhkjas' var2 = 'aljdfldjlfjldsfjl 6' 为什么放置var1.to_i输出6当放置var2.to_i给0? to_i方法返回由字符串开头的所有可分解数字组成的数字.您的第一个字符串以数字开头,所以to_i返回,第二个字符串不以数字开头,因此返回0. BTW,空格
据说在 the Rails 3.2.9 blog上建议安装Ruby 1.9.3-p327.但 rvm install ruby-1.9.3-p327 实际上给出了一个错误,日志说: There is no checksum for 'http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.bz2' or 'ruby-1.9.3-p327.
我非常想知道什么使得Crystal比 Ruby更快,而代码是如此相似.简短的答案可能是编译,Ruby被解释,但我想了解更多关于语言规范. 我想这是一个组合的事情: Ruby被解释,解释器可以改进.例如,其他解释型语言(如JS或Java)具有非常好的VM和JIT编译器. >在Crystal的运行时完成的许多Ruby检查都是在编译时完成的.例如,Ruby中的一个简单的方法调用最终在方法查找中.即使使用
我经历了 this年的ruby object_id分配问题,然后阅读了这个关于VALUE的这个很棒的 article,并解释了为什么object_id为true,以及它们的方式为false.当我发现对object_id为true和nil的明显变化时,我一直在使用ruby2.0 object_id. forbidden:~$ruby -v ruby 2.0.0p0 (2013-02-24 revis
我是 Ruby的新手.我使用了很多C#和 JavaScript,它允许高阶函数,我通常每天使用它们. Ruby似乎对我来说有点奇怪.每个功能可能如下所示: def each @items.each do |item| yield(item) end end items.each { |item| puts item } 然而,Ruby还对高阶功能有一些支持.以上可
为什么 Ruby公开符号以供显式使用?这不是通常由解释器/编译器处理的那种优化? 问题的一部分是Ruby字符串是可变的.由于Ruby分配的每个字符串必须是独立的(它不能缓存短/常见的字符串),所以使用Symbol类型可以方便程序员拥有基本上不可变的内存高效字符串. 此外,它们与枚举有许多特性,但程序员的痛苦较少.
当我输入这个: puts 'repeat' * 3 我明白了: >> repeat repeat repeat 但如果我这样做,它就无法运作: puts 3 * 'repeat' 为什么? 在Ruby中,当你调用* b时,你实际上正在调用一个名为*的方法.试试这个,例如: a = 5 => 5 b = 6 => 6 a.*(b) => 30 c = "hello" => "hello" c.*(
每次我使用双引号字符串,我得到这样的建议: 当我点击灯泡图标,我得到一个选项,将该字符串转换为单引号字符串. 有人可以解释为什么单引号的字符串比双引号字符串更受欢迎? 如果字符串中没有插值,则首选单引号. Ruby将在理论上减少输出单引号字符串,这反过来会加速你的代码(再次在理论上).这就是RubyMine建议的原因之一. 另一个原因是为了平坦的可读性.您可以在风格指南中阅读:Ruby Codin
我已经通过rvm(系统范围)安装 ruby,并通过普通控制台正常工作,我的rails程序与rails runner和apache2 passenger一起正常运行. 现在在crontab中,我调用了rails runner foo.bar,它放弃了,仔细检查日志我看到: /usr/bin/env: ruby: No such file or directory 任何人都知道为什么/usr/bin/
例如 def test a = "a is for apple" def inner_method a = "something" # this will refer to a different "a" end inner_method puts a end 这有什么理由吗?块有词法范围,为什么不用方法呢?这会被解决吗? 这是因为Ruby
在阅读了对 another question中的答案的评论并做了一些研究之后,我看到=〜在Object上定义,然后被String和Regexp覆盖. String和Regexp的实现似乎假设另一个类: "123" =~ "123" # => TypeError: type mismatch: String given /123/ =~ /123/ # => TypeError: can't con
我从 ruby website(1.9.2-p180)下载了持续稳定的ruby源代码,并在Windows上用MinGW 4.5.2-TDM和MSYS编译.要编译我运行sh configure和make.我完全按照预期获得了msvcrt-ruby191.dll和libmsvcrt-ruby191.dll.a.然后我写了这段代码: #include <ruby.h> int main() { ru
我一直在尝试使用RVM安装 Ruby 1.9.2-head,但一直收到此错误消息: echo executable host ruby is required 为了通过RVM安装Ruby,是否必须拥有系统Ruby? 我有rvm笔记中给出的所有依赖项,但我没有安装任何系统Ruby.错误日志显示: [2011-05-02 07:42:19] make gcc -O3 -ggdb -Wextra -
Ruby由rbenv安装. $ruby -v ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux] $which ruby /home/user/.rbenv/shims/ruby $which sass /home/user/.rbenv/shims/sass $gem list *** LOCAL GEMS ***