Преобразования типов в Ruby: “правильный” путь?

Получив ожидаемый результат, вы можете использовать \b, чтобы разделить строку и получить ожидаемый результат,

Вот код Java,

String s = "(int,x)";
System.out.println(Arrays.toString(s.split("\\b")));

Prints,

[(, int, ,, x, )]
7
задан tshepang 21 May 2014 в 20:08
поделиться

3 ответа

Вы имеете верное представление. Это может быть сделано немного более сжато, хотя:

isNum = Float(whatAmI) rescue nil

Встраивание "спасения" является отличным развлечением. Заключите в скобки часть, которую Вы спасаете при помещении ее посреди большего количества материала, как:

if (isNum = Float(whatAmI) rescue nil) && isNum > 20
  ...
9
ответ дан 6 December 2019 в 12:55
поделиться

Это могло бы звучать чрезмерно очень важным, но на основе Вашего описания, Вы почти наверняка делаете что-то "неправильно"... Почему необходимо было бы проверить, является ли Строка допустимым представлением a Float но не на самом деле преобразовывают Строку?

Это - просто догадка, но может быть полезно описать то, что Вы пытаетесь выполнить. Существует, вероятно, "лучший" путь.

Например, Вы могли бы хотеть вставить Строку в базу данных и соединить sql оператор с помощью конкатенации строк. Было бы предпочтительно преобразовать в Плавание, и использование подготовило операторы.

Если бы просто необходимо осмотреть "форму" строки, было бы предпочтительно использовать регулярное выражение, потому что, как dylan указанный, Плавание может быть представлено в любом количестве путей, которые могут или не могут быть соответствующими.

Вам, вероятно, также придется иметь дело с международным входом в Европе, запятая используется вместо периода в качестве десятичного разделителя, все же Плавания Ruby должны использовать (.).

4
ответ дан 6 December 2019 в 12:55
поделиться

Я не знаю о can_convert метод, но обычно класс будет определять методы как to_s, to_i, to_hash и так далее. Эти методы возвращают другое представление объекта, например, a to_s метод возвратит строковое представление объекта.

Что касается фактического преобразования, я уверен, что кто-то еще может ответить что лучше, чем я.

На другой ноте, если Вы задаетесь вопросом, можно ли добавить метод ко всем строкам, Вы можете. Просто откройтесь String класс и добавляет его!

class String
  def can_convert?
    ...
  end
end

Править: Строки, содержащие экспоненциальное представление, поддерживаются to_f.

>> "6.02e23".to_f
=> 6.02e+23
3
ответ дан 6 December 2019 в 12:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: