Ruby에서 키워드 인수를 "재 패키징"하는 좋은 방법이 있습니까?

Huliax

동일한 인수 집합을 다른 메서드에 전달하는 많은 (키워드) 인수를 취하는 여러 메서드가 있습니다.

다음은 정상입니다.

def foo(a:, b:, c:, d:, e:)
  bar('var', a:a, b:b, c:c, d:d, e:e)
end

# takes the same arguments as #foo + one more
def bar(var, a:, b:, c:, d:, e:)
  ...
end

이것은 지루하고 성가신 일입니다. Ruby 코어에 다음을 쉽게 수행 할 수있는 것이 있는지 궁금합니다.

def foo(a:, b:, c:, d:, e:)
  bar('var', <something that automagically collects all of the keyword args>)
end

나는 당신이를 파싱하고 method(__method__).parameters, 체조를하고, 모든 것을 이중으로 뿌려서 bar.에 전달할 수있는 해시로 패키징 할 수 있다는 것을 알고 있습니다 . 나는 그저 멋지고 깔끔한 방식으로 핵심에 이미 무언가가 있는지 궁금합니다.

좀 더 일반적인 방식으로 적용되는 것이 있다면, 즉 키워드 args뿐만 아니라 그것도 확실히 흥미 롭습니다.

무거운

예, **args임의의 키워드 인수 를 해시로 수집 합니다. **를 다시 사용하여 해시를에 대한 키워드 인수로 병합합니다 bar. Ruby 3는 더 이상이 작업을 수행하지 않습니다.

def foo(**bar_args)
  # The ** is necessary in Ruby 3.
  bar('var', **bar_args)
end

def bar(var, a:, b:, c:, d:, e:)
  puts "#{var} #{a} #{b} #{c} #{d} #{e}"
end

foo해당 인수를 사용하지 않는 경우 적합 하며 bar. 경우 foo일부 인수를 사용했다, 그이 정의되어야한다 foo.

def foo(a:, **bar_args)
  puts "#{a} is for a"
  bar('var', a: a, **bar_args)
end

def bar(var, a:, b:, c:, d:, e:)
  puts "#{var} #{a} #{b} #{c} #{d} #{e}"
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

기존 Firefox 확장 XPI 재 패키징 및 / 또는 수정

분류에서Dev

iOS에서 Frida Gadget을 사용하여 애플리케이션 재 패키징 문제

분류에서Dev

Unity : 이유없이 리소스 재 패키징 실패

분류에서Dev

종속성으로 음영 / 재 패키징 용기

분류에서Dev

독점 소프트웨어 재 패키징

분류에서Dev

대체 대상으로 .deb 재 패키징

분류에서Dev

함수에서 using 키워드를 사용하는 것이 좋습니까?

분류에서Dev

파이썬의 문자열에서 키워드 인수를 검색하는 방법은 무엇입니까?

분류에서Dev

합계 유형에서 레코드를 풀 수있는 더 좋은 방법이 있습니까?

분류에서Dev

실제로 jQuery가 이벤트 핸들러에서 'this'키워드를 조작하는 데 좋은 이유가 있습니까?

분류에서Dev

postgresql에서 다시 합산하지 않고 합계 필드를 빼는 더 좋은 방법이 있습니까?

분류에서Dev

메서드에 "배열 주소"를 전달하는 좋은 방법이 있습니까?

분류에서Dev

클래스에 전달 된 인수 변수를 추적하는 좋은 방법이 있습니까?

분류에서Dev

여러 매개 변수에 여러 인수를 할당하는 더 좋은 방법이 있습니까?

분류에서Dev

speck 키워드를 계산하는 방법은 .txt 파일에 있습니다.

분류에서Dev

pywin32에서 VBA의 키워드 인수를 처리하는 방법은 무엇입니까?

분류에서Dev

Julia에서 위치 및 키워드 인수를 전달하는 방법은 무엇입니까?

분류에서Dev

Robot Framework에서 기본값이 None 인 선택적 인수를 사용하여 키워드를 만드는 방법은 무엇입니까?

분류에서Dev

이 반복 메서드를 typescript로 작성하는 더 좋은 방법이 있습니까?

분류에서Dev

Android에서 %를 표시하는 더 좋은 방법이 있습니까?

분류에서Dev

메뉴 클릭 이벤트를 해당 코드에 매핑하는 더 좋은 방법이 있습니까?

분류에서Dev

블레이드에 변수를 보내는 더 좋은 방법이 있습니까?

분류에서Dev

Common Lisp : 키워드 인수를 다른 함수에 전달하는 방법은 무엇입니까?

분류에서Dev

파이썬의 문자열에서 키워드를 찾을 수있는 방법이 있습니까?

분류에서Dev

C에서 화면에 인쇄하지 않고 눌렀 던 키를 분석하는 더 좋은 방법이 있습니까 (예 : 화살표 키 및 Return)?

분류에서Dev

Objective-C에서 메서드 인수를 확인하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

내 메서드를 호출하는 if 문보다 더 좋은 방법이 있습니까?

분류에서Dev

LIMIT 키워드를 사용하여 Postgres에서 다양한 레코드를 얻는 방법이 있습니까?

분류에서Dev

kwargs에서 키워드를 이스케이프하는 방법이 있습니까?

Related 관련 기사

  1. 1

    기존 Firefox 확장 XPI 재 패키징 및 / 또는 수정

  2. 2

    iOS에서 Frida Gadget을 사용하여 애플리케이션 재 패키징 문제

  3. 3

    Unity : 이유없이 리소스 재 패키징 실패

  4. 4

    종속성으로 음영 / 재 패키징 용기

  5. 5

    독점 소프트웨어 재 패키징

  6. 6

    대체 대상으로 .deb 재 패키징

  7. 7

    함수에서 using 키워드를 사용하는 것이 좋습니까?

  8. 8

    파이썬의 문자열에서 키워드 인수를 검색하는 방법은 무엇입니까?

  9. 9

    합계 유형에서 레코드를 풀 수있는 더 좋은 방법이 있습니까?

  10. 10

    실제로 jQuery가 이벤트 핸들러에서 'this'키워드를 조작하는 데 좋은 이유가 있습니까?

  11. 11

    postgresql에서 다시 합산하지 않고 합계 필드를 빼는 더 좋은 방법이 있습니까?

  12. 12

    메서드에 "배열 주소"를 전달하는 좋은 방법이 있습니까?

  13. 13

    클래스에 전달 된 인수 변수를 추적하는 좋은 방법이 있습니까?

  14. 14

    여러 매개 변수에 여러 인수를 할당하는 더 좋은 방법이 있습니까?

  15. 15

    speck 키워드를 계산하는 방법은 .txt 파일에 있습니다.

  16. 16

    pywin32에서 VBA의 키워드 인수를 처리하는 방법은 무엇입니까?

  17. 17

    Julia에서 위치 및 키워드 인수를 전달하는 방법은 무엇입니까?

  18. 18

    Robot Framework에서 기본값이 None 인 선택적 인수를 사용하여 키워드를 만드는 방법은 무엇입니까?

  19. 19

    이 반복 메서드를 typescript로 작성하는 더 좋은 방법이 있습니까?

  20. 20

    Android에서 %를 표시하는 더 좋은 방법이 있습니까?

  21. 21

    메뉴 클릭 이벤트를 해당 코드에 매핑하는 더 좋은 방법이 있습니까?

  22. 22

    블레이드에 변수를 보내는 더 좋은 방법이 있습니까?

  23. 23

    Common Lisp : 키워드 인수를 다른 함수에 전달하는 방법은 무엇입니까?

  24. 24

    파이썬의 문자열에서 키워드를 찾을 수있는 방법이 있습니까?

  25. 25

    C에서 화면에 인쇄하지 않고 눌렀 던 키를 분석하는 더 좋은 방법이 있습니까 (예 : 화살표 키 및 Return)?

  26. 26

    Objective-C에서 메서드 인수를 확인하는 가장 좋은 방법은 무엇입니까?

  27. 27

    내 메서드를 호출하는 if 문보다 더 좋은 방법이 있습니까?

  28. 28

    LIMIT 키워드를 사용하여 Postgres에서 다양한 레코드를 얻는 방법이 있습니까?

  29. 29

    kwargs에서 키워드를 이스케이프하는 방법이 있습니까?

뜨겁다태그

보관