加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 为什么这个命令在这个特定代码中不起作用?

发布时间:2020-12-17 02:59:27 所属栏目:百科 来源:网络整理
导读:我怎么会这样呢? 我试过了 Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK 但我收到了这个: error: in `kind_of?’: class or module required (TypeError) 我觉得我的代码有问题,你能看一下吗?我知道它非常混乱和非常糟糕,我是一名编程学生,我正
我怎么会这样呢?
我试过了

Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK

但我收到了这个:

error: in `kind_of?’: class or module required (TypeError)

我觉得我的代码有问题,你能看一下吗?我知道它非常混乱和非常糟糕,我是一名编程学生,我正在学习.如果您有任何改进的想法,请告诉我!

此外,还有一些东西搞砸了包含在其中的目标.出于某种原因,当我尝试结束所有defs时,我得到意外的结束错误.

这是我在上下文中的代码:

def begindownload
    require 'net/http'
    puts "Enter the URL of the site that you want to rip images from (use www.*website*.com/folder/file.html or other extension format):"
    while @site = gets.chomp
        puts "Querying " + @site 
        if Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK == true
            puts "Site is online!"
        else 
            puts "Site is offline. Try again."
        end
    end
end

解决方法

在您的代码中,您使用的是:

if Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK == true

首先评估==,导致Net :: HTTPOK == true被评估为false.然后声明的其余部分变为:

if Net::HTTP.new(@site).head('/').kind_of? false

导致你的TypeError.

在执行if语句时,不需要检查== true.如果if之后的语句求值为true,那么将评估if.无论如何,检查boolean == true是否被认为是错误的形式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读