这是字符串:04046955104021109我需要这样格式化:040469551-0402-1109用ruby做到这一点的最短/最有效的方法是什么? 最佳答案 两个简单的插入就可以了:example_string.insert(-9,'-').insert(-5,'-')负数表示您从字符串末尾开始计数。如果您愿意,也可以从头数起:example_string.insert(9,'-').insert(14,'-') 关于ruby-用ruby将2个破折号插入这个字符串的最短方法是
这是一个有点微观的问题,但每次我创建一个gem并需要加载子目录下的所有文件以用于某种反射目的(或只是一个快速而肮脏的预加载)时,我问自己“肯定有更清洁的方法吗?”,引用这种常见模式:Dir[File.join(File.dirname(__FILE__),"subdirectory/**/*.rb")].each{|f|requiref}需要在__FILE__上调用File.dirname,这使得它不必要地冗长。你不能真正在gem中使用相对路径,因为你不知道你是从哪里加载的。 最佳答案 你用的是哪种ruby?在ruby1.9中,
我正在尝试从Ruby中的较长字符串创建较短的非冲突字符串。最好的方法是什么?Base64编码MD5哈希?这是用例:loopdokey=short_hash("#{user_id}-#{timestamp}")breakif$redis.setnx(key,"0")end我不希望key太长。 最佳答案 我经常使用SHA与您的示例类似。它不能保证是唯一的,但通常足以满足大多数用途:require'digest/sha1'Digest::SHA1.hexdigest("#{user_id}-#{Time.now.to_i}-#{rand}
在Ruby中,您可以将映射函数应用于数组的每个元素:@files.map{|f|f.read)}其中有语法糖:@files.map(&:read)有没有等价物@files.map{|f|read(f)}那更简洁,类似于上面的? 最佳答案 你可以这样做@files.map(&method(:read))但请注意aboutperformance. 关于ruby-将数组的每个元素传递给函数的更短方法,我们在StackOverflow上找到一个类似的问题: https
正如标题所说,需要用于测试目的。 最佳答案 你可以使用IPAddrrequire'ipaddr'ipv4=IPAddr.new(rand(2**32),Socket::AF_INET)ipv6=IPAddr.new(rand(2**128),Socket::AF_INET6) 关于ruby-on-rails-在Ruby中生成随机IP地址的最短方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com
我正在寻找这样的东西:raiseExceptionrescuenil但我发现的最短路径是:beginraiseExceptionrescueExceptionend 最佳答案 这是由ActiveSupport提供的:suppress(Exception)do#dangerouscodehereendhttp://api.rubyonrails.org/classes/Kernel.html#method-i-suppress 关于ruby-这是静默忽略Ruby异常的最短方法,我们在Sta
Jquery是否有更简单/更短的方法来编写这样的if语句:if(number==="0"){degrees="-160";}if(number==="1"){degrees="-158";}if(number==="2"){degrees="-156";}if(number==="3"){degrees="-154";}if(number==="4"){degrees="-152";}if(number==="5"){degrees="-150";}if(number==="6"){degrees="-148";}if(number==="7"){degrees="-146";}if(
我有这样的条件:if(foo=='fgfg'||foo=='asdf'||foo=='adsfasdf'){//dostuff}肯定有更快的写法吗?谢谢。 最佳答案 你可能会考虑一个switch-case语句switch(foo){case"fgfg":case"asdf":case"adsfasdf"://...}它并没有真正更短,但根据您使用的条件数量可能更具可读性。 关于javascript-js中的较短条件,我们在StackOverflow上找到一个类似的问题:
创建“新函数”别名的最短方式(字符)是什么。基本上这是为了代码高尔夫和超出合理范围的缩小代码。所以当你通常会写:a=function(a,b,c){returna+b+c;}你可以这样写(也让我们用全局变量R抽象return关键字):a=$("a,b,c","R=a+b+c")a=$(a,b,c){R=a+b+c}(不确定第二个是否可行。)对于第一个例子,我想到的最好的是:$=function(a,b){returnnewFunction(a,"R=0;"+b+";returnR")}大小(用法、声明)都很重要,但使用大小更重要。 最佳答案
我注意到Date.Parse不能只处理2位数的日期。说我有这个mm/dd/yy=7/11/20日期解析会认为它是=7/11/1920。您可以将它设置为使用2000年吗?有点奇怪,我得到了jqueryu.i日期选择器,如果你输入7/11/20,它会计算出2020。所以如果Date.parse能跟上就好了我宁愿让他们都不知道发生了什么或者都知道发生了什么然后一个知道一个不知道知道。 最佳答案 据我所知不是。但您始终可以调整年份:YourDate="7/11/20";DateObj=newDate(YourDate.replace(/(\