红宝石的范围非常酷.我最终得到这样的数组:
geneRanges = [(234..25), (500..510), (1640..1653)]
Run Code Online (Sandbox Code Playgroud)
然后必须删除它们的一部分.为此我:
genePositions = geneRanges.collect {|range| range.entries }.flatten
=> [500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653]
Run Code Online (Sandbox Code Playgroud)
它们被操纵,因此一些数字被排除在外,其他数字可能被添加.我最终可能会这样:
[505, 506, 507, 600, 601, 602, 603, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654]
Run Code Online (Sandbox Code Playgroud)
如何将其转换回紧凑的范围数组?似乎反函数应该存在?我希望它能返回这样的东西:
[(505..507), (600..603), (1643..1654)]
Run Code Online (Sandbox Code Playgroud)
谢谢!
>> current_user.first_visit
=> 0
>> if current_user.first_visit
>> puts "test"
>> end
test
=> nil
Run Code Online (Sandbox Code Playgroud)
为什么打印测试?
根据proc手册,可以通过打开"/ proc/mounts"监视linux系统中的挂载点更改,并添加文件描述符以读fd_set入select()调用.
以下代码适用于Ubuntu 9.04,而不适用于Ubuntu 10.04(2.6.32 linux内核):
int mfd = open("/proc/mounts", O_RDONLY, 0);
fd_set rfds;
struct timeval tv;
int rv;
FD_ZERO(&rfds);
FD_SET(mfd, &rfds);
tv.tv_sec = 5;
tv.tv_usec = 0;
int changes = 0;
while ((rv = select(mfd+1, &rfds, NULL, NULL, &tv)) >= 0) {
if (FD_ISSET(mfd, &rfds)) {
fprintf(stdout, "Mount points changed. %d.\n", changes++);
}
FD_ZERO(&rfds);
FD_SET(mfd, &rfds);
tv.tv_sec = 5;
tv.tv_usec = 0;
if (changes > 10) {
exit(EXIT_FAILURE);
}
}
Run Code Online (Sandbox Code Playgroud)
文件描述符总是在一台机器上可读,因此它会在select调用中不断弹出.即使坐骑没有变化.
我在这里错过了什么吗?
在此先感谢您的帮助!
我有一个类似于以下的功能:
def check
return 2 == 2 || 3 != 2 || 4 != 5
end
Run Code Online (Sandbox Code Playgroud)
我的问题是,Ruby会执行所有比较,即使第一个是真的,因此函数返回true.我的检查要密集得多,所以我想知道我是否应该以不同的方式解决这个问题,以避免每次都进行所有检查.
irb(main):004:0> 2 == 2 || 3 != 2 || 4 != 5
=> true
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个项目,其核心领域正在发生巨大变化.可以使用该站点50%的核心功能,只添加50%的新功能,但我开始考虑在Rails中简单地重做产品可能会更快.发展速度非常重要.
有一些我非常喜欢java的东西 - 性能和可伸缩性非常好.我不是一个糟糕的Java开发人员,所以我的应用程序往往运行得很好 - 比我见过的Rails站点更好.我总是接受这样一种观点,即人们可能只是在使用Rails时花费更多的钱来解决问题,这可能最终会因为疯狂的生产力优势而自行解决.
我实际上非常熟悉Java.我知道在系统中添加一个基本实体仍然需要更长的时间,但我很快就会这么做,我不介意那么多.至少它很简单直接.
我的主意是:
我喜欢Java的一些东西.使用Spring Security可以很容易地进行基于角色的访问.身份验证从来没有那么大的收获,但我喜欢Spring内部的实现.
我也喜欢Spring的表单支持对象和@ModelAttribute.对于控制器而言,这些都是巨大的胜利,我不知道Rails是否可以做这些事情.老实说,我从不喜欢在每个动作中传递请求参数 - 当涉及到这种常见的膨胀时,Spring MVC实际上更容易使用.
能够在内存中缓存真正庞大的结构并在启动应用程序时让它们保留在内存中也是非常需要的,特别是对于这个应用程序实际上.我有一个内存中的同义词库和语法检查器,每个请求需要被调用数百次,所以内存对我来说几乎是最快的选择.
即便如此,我想我可以在2-3周内重建我所拥有的东西,然后使用rails在几周内添加所有新功能.
从好的方面来说,所有精心设计的css,html和javascript都可以移植到很少的问题.
在继续之前,我会对这个问题提出一些建议.
PS:我也可以去Spring-ROO ......但这也是一个相当大的返工.我从来没有使用JPA - 我直接使用Hibernate.我也没有使用JSP - 我正在使用Freemarker.
我对红宝石很新.我使用IronRuby,我的ruby代码有很长的命名空间:
Company:: Division::Group::Product::Package.new
Run Code Online (Sandbox Code Playgroud)
既然我多次使用这个ns有没有办法创建一个快捷方式?在c#中我添加了一个using子句,所以我不需要指定完整的前缀.
当你将参数传递给Ruby中的方法时,任何人都可以扩展,纠正或验证我的感受.这些点中的任何一个都错了吗?我错过任何一件作品吗?
有没有办法让一个方法作为其参数之一的整数,做一些东西,也许作为副作用改变值,一旦方法退出反映了该变化.也许我只是不想"Ruby方式".
我想要一个占位符来表示我尚未实现的单个字符串.如何在Ruby 1.9中打印雪人?
目前,我可以做到
# coding: utf-8
puts "?"
Run Code Online (Sandbox Code Playgroud)
要么
puts "\u2603"
Run Code Online (Sandbox Code Playgroud)
但是可以使用"索引条目"字段(此处提到)snowy weather或SNOWMAN或者weather, snowy打印字符吗?
我没有使用Rails.
根据rails文档
http://guides.rubyonrails.org/migrations.html
2.3支持的类型修饰符表示应该可以修改字段以允许或禁止列中的NULL,并且可以在终端上执行此操作
这就是我想要在迁移文件中出现的内容
class CreateTestModels < ActiveRecord::Migration
def change
create_table :test_models do |t|
t.string:non_nullable, :null => false
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
在终端上,我试过了
rails generate model TestModel non_nullable:string{null}
rails generate model TestModel 'non_nullable:string{null: false}'
Run Code Online (Sandbox Code Playgroud)
我想不出任何其他表达方式
注意:我已经知道您可以进入迁移文件并手动添加它.那不是我想要的.
我如何lint YAML文件,而不必将其上传到http://yamllint.com?
例如,如果我有
people:
1:
:name: John Smith
:name: Jane Smith
Run Code Online (Sandbox Code Playgroud)
如何让它警告我最后一次:name覆盖:name?
我使用的是Ruby 2.1和Ubuntu 12.04.