Как заставить ruby ​​указывать на ошибку перед двоичной функцией? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть этот код, который работает:

stripped = "00010001"
IO.binwrite("Test.txt", [stripped].pack('B*'))

Но если stripped равно:

stripped = "00013001"

Ruby в любом случае пишет "двоичный файл". Как я могу заставить Руби дать мне ошибку и не записать ее?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2019
"1000101010".scan(/[^01]/).any?

Это просто выполняет регулярное выражение для строки, ища любые символы, которые не являются 0 или 1, и возвращает true, если строка имеет какие-либо другие символы.

2 голосов
/ 29 апреля 2019

Метод ядра Integer принимает базу в качестве аргумента и является строгим (по умолчанию).

Integer("00011001",2).to_s(16) 
# => "19"

Integer("00013001",2).to_s(16) 
# => invalid value for Integer(): "00013001" (ArgumentError)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...