@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) ?
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Pirozhok_s_pavidlom Автор вопроса
да действительно вы правы nil там нет. моя невнимательность
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы