小编And*_*zie的帖子

如何在Ruby中有条件地重复循环?

我正在创建一个Caeser Cypher代码,我无法弄清楚如何让搜索循环"返回"我的字母数组中的"a".

这是我得到的:

    def ceaser_cypher(string, num)
      alphabet = ("a".."z").to_a
      letters = string.split("")
         letters.map!.with_index do |let,idxs|
           if alphabet.include?(let)
               alphabet[alphabet.index(let) + num]
           end
       end

    letters.join("")
    end
Run Code Online (Sandbox Code Playgroud)

就像大多数字母的魅力一样,但是对于"y"和"z",它们当然会返回nil,例如,num == 3因为字母数组中没有三个以上的索引; 而不是分别返回"b"或"c".那么如何才能让循环开始呢?

ruby arrays

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

有没有一种方法没有(*)splat参数在Ruby中传递多个参数?

我需要编写一个方法,它接受一个未知数量的参数(因此*splat)但是它传递了一个yields_with_args规范.

代码:

def eval_block(*args, &block)
    raise "NO BLOCK GIVEN!" if block.nil?
       block.call(args)
end
Run Code Online (Sandbox Code Playgroud)

rspec:

it "passes the arguments into the block" do
      expect do |block|
        eval_block(1, 2, 3, &block)
      end.to yield_with_args(1, 2, 3)
    end
end
Run Code Online (Sandbox Code Playgroud)

它工作,但它产生*splat创建的数组:[1,2,3]vs 1,2,3,因此不传递rspec.是否有另一种方法通过Ruby中的方法传递多个参数?

ruby rspec splat

2
推荐指数
1
解决办法
282
查看次数

为什么我的程序不接受自定义异常?

我正在尝试制作一个cat克隆,并且我要求它在出现时接收输入-.

主要的(); 在这儿:

import java.io.*;
import java.util.*;

class cat {
  public static void main(String[] args) {
    for (int i = 0; i < args.length; i++) {

      try{
       filePrint(args[i]);

        }   catch(DashException letsTryThis){
           catDash();
        }   catch(FileNotFoundException wrong) {
           System.err.println(String.format("%s: File Not Found.", args[i]));
        }   catch (IOException noWords) {
           System.err.println(String.format("%s: File can't be read.", args[i]));
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

filePrint()只是逐行打印文件并catDash()接收并打印标准输入.没什么特别的.

我要做的是有一个自定义异常,专门捕获-和调用catDash()(上面的第一个catch块).但是,无论如何,try/catch块总是抛出FileNotFound wrong异常(上面的第二个catch块).我的问题是,如何让它捕获特定原因并在第二个块之前抛出它?

DashException定义它自己的文件:

import java.lang.Throwable;

public class DashException …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

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

标签 统计

ruby ×2

arrays ×1

exception-handling ×1

java ×1

rspec ×1

splat ×1