Задать вопрос
@Pirozhok_s_pavidlom

Почему нет ошибки TypeError (no implicit conversion of nil into String)?

Есть такой экспериментальный код:

2.6.3 :058 > current_path = File.dirname(__FILE__)
 => "." 

# пустая директория
2.6.3 :059 > file_paths = Dir.glob("#{current_path}/data/*.txt")
 => [] 
2.6.3 :060 > file_paths.each do |file_path|
2.6.3 :061 >     if File.exist?(file_path)
2.6.3 :062?>     puts "файл существует"
2.6.3 :063?>     else 
2.6.3 :064?>     puts "файл не найден"
2.6.3 :065?>     end
2.6.3 :066?>   end
 => [] 

# в директории находится файл 1.txt
2.6.3 :067 > file_paths = Dir.glob("#{current_path}/data/*.txt")
 => ["./data/1.txt"] 
2.6.3 :068 > file_paths.each do |file_path|
2.6.3 :069 >     if File.exist?(file_path)
2.6.3 :070?>     puts "файл существует"
2.6.3 :071?>     else 
2.6.3 :072?>     puts "файл не найден"
2.6.3 :073?>     end
2.6.3 :074?>   end
файл существует
 => ["./data/1.txt"]

Вопрос: почему на 61 строке, когда методу exist? класса File итератор each передает nil, то нет ошибки TypeError (no implicit conversion of nil into String) ?
  • Вопрос задан
  • 371 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Pirozhok_s_pavidlom Автор вопроса
да действительно вы правы nil там нет. моя невнимательность
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
OTKLIK POWER Москва
от 80 000 до 150 000 ₽
Data World Санкт-Петербург
До 230 000 ₽
Сбер Москва
от 200 000 до 300 000 ₽