我正在参加一个训练营课程,我知道不一定需要第4行(zip_code = zip_code),但有人告诉我它很有用,原因很简单,但我不确定那是什么。有人知道为什么吗?非常感谢。
class AdoptADog::Scraper
def self.scrape_dogs(zip_code)
base_url = "https://www.petsmartcharities.org/find-a-pet-results?city_or_zip="
zip_code = zip_code
last_url = "&species=dog&color_id&geo_range=50&pet_size_range_id&sex&age=&breed_id=69"
full_url = base_url + zip_code + last_url
html = open(full_url)
doc = Nokogiri::HTML(html)
doc.css(".pet-result").each do |dog|
name = dog.css(".pet-name").text
breed = dog.css(".pet-breed").text
sex = dog.css(".pet-sex").text
location = dog.css(".pet-addr-city-state").text
url = dog.css("a").attribute("href").value
AdoptADog::Dogs.new(name, breed, sex, location, url)
end
end
end发布于 2018-07-28 07:20:53
不,最初的前提是它是有用的,这是不正确的。
这没有功能上的原因,我甚至反对这种松散的理由,认为它“增加了可读性”。
这在每种语言中都是非常糟糕的做法。
这样做的一个也是唯一可能的原因是向刚刚开始学习编程核心基础的人演示变量。然而,即使这也是一个糟糕的例子,因为它可能被误解为良好的实践,而实际上它肯定不是,而且有更好的方法来说明这一点,而不会有任何误解的风险。
发布于 2018-07-29 09:54:53
也许是zip_code = zip_code.dup ?,你不应该改变你的函数中传递的参数。
发布于 2018-07-29 19:34:12
会不会是你错过了.dup或.clone?
如果你使用可变对象,而又不想弄乱原来的对象,something = something.dup会很有用。
无论如何,如果你被告知出于某种原因它是有用的,为什么你不直接要求那个人详细说明呢?
https://stackoverflow.com/questions/51566358
复制相似问题