小编tok*_*and的帖子

Ruby中已排序元素的原始索引

arr = [1,3,2,4]

arr.sort #=> [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想要一个数组[0, 2, 1, 3](原始索引按arr.sort顺序)

使用Ruby 1.9.3有一种简单的方法吗?

谢谢

ruby arrays sorting indexing

7
推荐指数
1
解决办法
4277
查看次数

将枚举器转换为惰性枚举器

一个枚举可以被转换成使用懒惰枚举枚举:: Lazy.new这样的(这是一个例子;在开始时,我已经有一个枚举,而不是一个数组):

xs_enum = [1, 2, 3].to_enum
# => #<Enumerator: [1, 2, 3]:each>
xs_lazy_enum = Enumerator::Lazy.new(xs_enum, &:yield)
# => #<Enumerator::Lazy: #<Enumerator: [1, 2, 3]:each>:each>
xs_lazy_enum.force
# => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

有更简洁的方法吗?

ruby

7
推荐指数
2
解决办法
133
查看次数

Ruby中未定义的变量是否等于nil?

我得到错误undefined variable,我知道如果用作布尔值,nil则进行评估false:

if y
  puts "Something"
end
Run Code Online (Sandbox Code Playgroud)

ruby

6
推荐指数
3
解决办法
7649
查看次数

防止在单节点 slurm 设置中直接使用 GPU

场景:我在一台 Ubuntu 机器上安装了 slurm。用户可以登录到该机器来执行一些GPU和非GPU任务。

目标:我想阻止这些用户直接使用 GPU。只有从 slurm 开始的作业才应该能够使用 GPU。

我所做的:为了防止直接使用 GPU,我更改了 /dev/nvidiaN ( chown root.gpu /dev/nvidia*) 的所有者,现在只有组内的用户gpu可以使用它们。这样可行。问题是:slurm 作业当然以启动时的同一用户身份运行,因此这些提交的作业也无法使用任何 GPU。

有什么办法可以实现这个目标吗?我考虑过使用镜像用户(user->user-slurm在组内gpu但没有登录),sudo 和一些sbatch --uid=UID --guid=GID ...白名单命令,但这看起来非常复杂。

permissions slurm

6
推荐指数
1
解决办法
1093
查看次数

如何在Ruby中编写“ if in”语句

我正在寻找像Python这样的if-in语句。

从本质上讲,如果x an_array做

这是我正在处理的代码,其中“ line”变量是一个数组。

def distance(destination, location, line)
  if destination and location in line
    puts "You have #{(n.index(destination) - n.index(location)).abs} stops to go"
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby arrays if-statement

5
推荐指数
1
解决办法
847
查看次数

Amazon Elasticache Redis 集群 - 无法获取端点

我需要获取 Amazon Elasticache 中 Redis 集群的终端节点。以下代码适用于 Memcached 集群,但不适用于 Redis:

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;

import com.amazonaws.services.elasticache.AmazonElastiCacheClient;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersRequest;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersResult;
import com.amazonaws.services.elasticache.model.CacheNode;
import com.amazonaws.services.elasticache.model.CacheCluster;
import com.amazonaws.services.elasticache.model.Endpoint;

public class Redis {
    public static void main(String[] args) {
        AWSCredentials credentials = 
            new ProfileCredentialsProvider("default").getCredentials();
        AmazonElastiCacheClient amazonClient = new AmazonElastiCacheClient(credentials);
        amazonClient.setRegion(Regions.EU_WEST_1);
        DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();
        dccRequest.setShowCacheNodeInfo(true);
        dccRequest.withCacheClusterId("app-001");
        DescribeCacheClustersResult clusterResult = 
            amazonClient.describeCacheClusters(dccRequest);

        CacheCluster cacheCluster = clusterResult.getCacheClusters().get(0);
        System.out.println("cluster: " + cacheCluster);
        System.out.println("endpoint: " + cacheCluster.getConfigurationEndpoint());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

cluster: {CacheClusterId: app-001,ClientDownloadLandingPage: https://console.aws.amazon.com/elasticache/home#client-download:,CacheNodeType: cache.r3.large,Engine: redis,EngineVersion: …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services redis amazon-elasticache

5
推荐指数
1
解决办法
2875
查看次数

类型动态对象函数调用

我有以下代码(Playground):

const routes = {
    projects: ({}) => "/projects",
    "projects.edit": ({ id }: { id: string }) => `/projects/${id}`,
    report: ({ projectId }: { projectId: string }) => `/report/${projectId}`,
};

type Routes = typeof routes;

export function generateUrl<Name extends keyof Routes>(
    name: Name,
    params: Parameters<Routes[Name]>[0]
): string {
    const fn = routes[name];
    return fn(params);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误fn(params)。我将如何编写它进行类型检查(不使用any)?

类型'{projectId:string;类型中缺少属性'id' }”,但在类型“ {{id:string; }'。

typescript

5
推荐指数
1
解决办法
135
查看次数

我如何在ruby中使用map方法调用方法链?

我如何调用块_id.to_s在ruby中使用?

category_ids = categories.map(&:_id.to_s)
Run Code Online (Sandbox Code Playgroud)

我正在攻击它并立即执行以下操作:

category_ids = []
categories.each do |c|
  category_ids << c.id.to_s
end
Run Code Online (Sandbox Code Playgroud)

ruby

4
推荐指数
2
解决办法
4960
查看次数

java中的抽象静态类给出错误非法组合修饰符

abstract class AbstractCase2 {
    abstract static void simpleMethod1();//giving error
}

class Case2 extends AbstractCase2 {
    static void simpleMethod1() {
    System.out.println("Within simpleMethod1");
}
    public static void main(String args[]) {            
    simpleMethod1();            
    System.out.println("with AwM");
    }     
}
Run Code Online (Sandbox Code Playgroud)

得到错误:

C:\>javac Case2.java
Case2.java:8: error: illegal combination of modifiers: abstract and static
        abstract static void simpleMethod1();
                      ^
1 error
Run Code Online (Sandbox Code Playgroud)

java static extends abstract

4
推荐指数
2
解决办法
2779
查看次数

如何用管道分隔打印哈希值

我有一个哈希数组,如下所示:

sample = {:a=>1, :b=>2, :c=>{:c1=>abc, :c2=>xyz}, :d=>3}
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

1|2|abc|xyz|3
Run Code Online (Sandbox Code Playgroud)

但如果我使用命令:sample.values.join("|")

我的输出显示如下:

1|2|c1abcc2xyz|3
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。提前致谢。

ruby rubygems ruby-on-rails

3
推荐指数
1
解决办法
318
查看次数