반응형

ruby 8

클래스가 주어지면 인스턴스에 메서드(Ruby)가 있는지 확인합니다.

클래스가 주어지면 인스턴스에 메서드(Ruby)가 있는지 확인합니다. 나는 루비에서 내가 사용할 수 있는 것을 알고 있습니다.respond_to?개체에 특정 메서드가 있는지 확인합니다. 그런데 클래스를 감안할 때 인스턴스에 특정 방법이 있는지 어떻게 확인할 수 있습니까? i.e, 비슷한 것 Foo.new.respond_to?(:bar) 하지만 새로운 사례를 예시하는 것보다 더 좋은 방법이 있을 것 같습니다.왜 모든 사람들이 당신이 사용해야 한다고 제안하는지 모르겠어요.instance_methods그리고.include? 때에method_defined?그 일을 합니다. class Test def hello; end end Test.method_defined? :hello #=> true 메모 이 다른 에서 루..

prosource 2023.07.02

MiniTest에서 단일 테스트를 실행할 수 있습니까?

MiniTest에서 단일 테스트를 실행할 수 있습니까? 다음을 사용하여 모든 테스트를 단일 파일로 실행할 수 있습니다. rake test TEST=path/to/test_file.rb 그러나 해당 파일에서 테스트를 하나만 실행하려면 어떻게 해야 합니까? 다음과 유사한 기능을 찾고 있습니다. rspec path/to/test_file.rb -l 25 명령은 다음과 같아야 합니다. % rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v" 시도해 보셨습니까? ruby path/to/test_file.rb --name test_method_name 필요하지 .ruby -Itest test/lib/test.rb --name /some_test/..

prosource 2023.07.02

람다를 사용할 때, Proc.new를 사용할 때?

람다를 사용할 때, Proc.new를 사용할 때? 1Ruby 1.8의 proc/lambda .Proc.new반면에 그것들의 차이점은 무엇입니까? 어떤 것을 선택할지 어떻게 결정해야 하는지 가이드라인을 줄 수 있습니까? Ruby 1.9에서는 proc와 람다가 다릅니다.무슨 일입니까? 로 생성된 프로시저 간의 또 다른 중요하지만 미묘한 차이lambda로 생성된 및 Proc.new그것이 그들이 처리하는 방법입니다.return문: lambda proc, proc,return만 반환합니다. Proc.new proc, proc,return진술은 조금 더 놀랍습니다: 그것은 단지 프로시저뿐만 아니라 프로시저를 둘러싸는 방법에서도 통제력을 반환합니다! »lambda proc -created proc's -created..

prosource 2023.06.27

"도..."가 있습니까?루비의 루프?

"도..."가 있습니까?루비의 루프? 프로그램이 빈 문자열을 입력할 때까지 사용자가 배열에 저장하는 동안 사용자가 이름을 입력할 수 있도록 이 코드를 사용합니다(각 이름 뒤에 Enter 키를 눌러야 함). people = [] info = 'a' # must fill variable with something, otherwise loop won't execute while not info.empty? info = gets.chomp people += [Person.new(info)] if not info.empty? end 이 코드는 도(do)에서 훨씬 더 멋져 보일 것입니다.루프하는 동안: people = [] do info = gets.chomp people += [Person.new(info)] i..

prosource 2023.06.12

인스턴스 변수: 자체 vs @

인스턴스 변수: 자체 vs @ 다음은 몇 가지 코드입니다. class Person def initialize(age) @age = age end def age @age end def age_difference_with(other_person) (self.age - other_person.age).abs end protected :age end 제가 알고 싶은 것은 사용하는 것의 차이점입니다.@age그리고.self.age에age_difference_with방법.쓰기@age인스턴스 변수에 직접 액세스합니다.@age.쓰기self.age개체가 자체적으로 메시지를 전송하도록 지시합니다.age일반적으로 인스턴스 변수를 반환합니다.@age하지만 그 방법에 따라 다른 많은 것들을 할 수 있습니다.age메서드가 지정된 ..

prosource 2023.06.02

해시/AML에서 모든 빈 요소를 제거하시겠습니까?

해시/AML에서 모든 빈 요소를 제거하시겠습니까? 중첩된 해시 또는 YAML 파일에서 모든 빈 요소(빈 목록 항목)를 제거하려면 어떻게 해야 합니까?Rails 4.1은 Ruby의 핵심 확장으로 Hash#compact와 Hash#compact!를 추가했습니다.Hash클래스. 다음과 같이 사용할 수 있습니다. hash = { a: true, b: false, c: nil } hash.compact # => { a: true, b: false } hash # => { a: true, b: false, c: nil } hash.compact! # => { a: true, b: false } hash # => { a: true, b: false } { c: nil }.compact # => {} 주의: 이 구현은..

prosource 2023.06.02

Ruby Array find_first 객체?

Ruby Array find_first 객체? 배열 문서에 누락된 내용이 있습니까?특정 기준을 충족하는 개체를 하나까지 포함하는 배열이 있습니다.저는 그 물건을 효율적으로 찾고 싶습니다.문서에서 제가 생각하는 최고의 아이디어는 다음과 같습니다. candidates = my_array.select { |e| e.satisfies_condition? } found_it = candidates.first if !candidates.empty? 하지만 저는 두 가지 이유로 만족하지 못합니다. 그거select첫 번째 히트 후에 우리가 도망칠 수 있었음에도 불구하고, 나는 모든 어레이를 횡단하게 했습니다. 저는 후보자들을 납작하게 만들기 위해 (조건이 있는) 코드 줄이 필요했습니다. 두 작업 모두 0개 또는 1개의..

prosource 2023.06.02

루비: "frozen_string_literal: true"라는 코멘트는 무엇을 의미합니까?

루비: "frozen_string_literal: true"라는 코멘트는 무엇을 의미합니까? 여기가 바로rspec내 프로젝트 디렉토리에 있는 binstub. #!/usr/bin/env ruby begin load File.expand_path("../spring", __FILE__) rescue LoadError end # frozen_string_literal: true # # This file was generated by Bundler. # # The application 'rspec' is installed as part of a gem, and # this file is here to facilitate running it. # require "pathname" ENV["BUNDLE_GEMFIL..

prosource 2023.06.02
반응형