*, ?, Ruby의 yield, Python Dev
8563 단어 rubycodenewbie
Ruby 학습에 대한 마지막 게시물을 쓴 지 조금 되었습니다. 나는 배우는 것을 멈추지 않았지만 이미 쓴 것을 복습하고 쓸 가치가 없어 보이는 것을 배웠습니다.
어제와 오늘, 나는 나에게 완전히 새로운 몇 가지를 우연히 발견했습니다. 그래서 여기 제가 전에 본 적이 없는 Ruby에 대한 몇 가지 설명과 비수학적인 예가 있습니다.
나에게 새로운 것들
향후 참조를 위한 많은 예제와 설명.
블록
블록은
{}
의 코드 그 이상입니다. do
와 end
사이의 코드를 블록이라고도 합니다. 나는 이것을 알고 있었지만 do
에 대해 배우려고 할 때 end
/yield
블록을 기억하지 못했습니다. 사실, 그것은 그것에 대한 나의 이해를 막고 있었습니다.생산하다
그래서
yield
가 무엇을 의미하는지 이해하는 것은 저에게 영원처럼 느껴졌습니다. 분명히 yield
는 블록에 정보를 전달하거나 보내는 중입니다.def greet_pets(list)
i = 0
while i < list.length
yield list[i] # send element
i = i + 1
end
end
pets = ["Cheeto", "Remmy", "Wiley", "Puppy", "Chip"]
greet_pets(pets) do |name|
if name.end_with?("y")
puts "Hi, #{name}, how was your day?"
end
end
# output
Hi, Remmy, how was your day?
Hi, Wiley, how was your day?
Hi, Puppy, how was your day?
=> nil
표시 *
이것은 나에게 새로운 것입니다. 나는 파이썬이 이것을 가지고 있다고 확신하지만 그것은 여전히 나에게 새롭고 이 목록에 속합니다.
매개변수에 표시
*
를 사용하면 지정되지 않은 양의 항목을 지정할 수 있습니다. 그것은 0이 될 수도 있고 1000이 될 수도 있습니다.def print_pets *pets
puts pets.join(', ')
end
print_pets("Cheeto", "Wiley", "Puppy", "Remmy", "Chip")
# output
Cheeto, Wiley, Puppy, Remmy, Chip
NoMethodError
터미널은 매우 유용한 환상적인 놀라운 오류를 제공합니다. 나는 두렵다. 이 오류가 발생했을 때 코드에
if name.ends_with?("y")
가 있었습니다.NoMethodError (undefined method `ends_with?' for "Cheeto":String)
Did you mean? end_with?
반품
이것은 거짓말입니다.
return
은 나에게 새로운 것이 아닙니다. 그것은 내가 항상 이해하는 시간이 많았던 것입니다.return
변수에 물건을 저장하는 데 사용되는 것 같습니다. puts
는 나중에 사용할 수 있도록 저장하는 대신 화면에 내용만 표시하기 때문에 이 작업을 수행할 수 없습니다.내장 ? 행동 양식
나는
?
가 포함된 이러한 방법 중 하나를 볼 때마다 놀라움을 금치 못합니다. 그들은 항상 나를 전나무에 던지고 그들이 일을 얼마나 단순하게 만드는지에 놀랐습니다.그들은 코드가 영어를 구사하는 것처럼 자연스럽게 느껴지도록 만듭니다. 나는 팬이다.
block_given?
def make_bio(name, language, *pets)
puts "Hi, I'm #{name} and I do #{language} programming"
if block_given?
yield pets
else
puts pets
end
end
make_bio("Vicki", "Python & Ruby", "Cheeto", "Chip"){|pets| puts pets.join(' & ') + " btw, yield was used"}
# output
Hi, I'm Vicki and I do Python & Ruby programming
Cheeto & Chip btw, yield was used
=> nil
이 시리즈의 첫 번째 게시물을 놓쳤다면 잘 읽었고 고양이가 있다고 들었습니다.
Python 개발자로서 Ruby Fast 선택
Vicki (그녀/그들) ・ 11월 12 '20 ・ 3분 읽기
#ruby
#python
#codenewbie
Reference
이 문제에 관하여(*, ?, Ruby의 yield, Python Dev), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vickilanger/more-picking-up-ruby-as-a-python-dev-1pi6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)