주어진 클래스에 숫자를 동적으로 생성

아론 브레 거

문자열이 주어지면 또는 다음을 '123'만들 수 있습니다 .FloatInteger

x = Float('123.45')
y = Integer('123')

동적 타이핑 연습으로, Numeric최상위 숫자 클래스 인 을 확장 하여 숫자를 문자열로 변환하고 역순으로 다시 원래 유형으로 되돌리고 싶습니다 .

이렇게하면 다음과 같이 할 수 있습니다.

x = (123).reverse
// x == 321

아니면 이거:

y = (54.321).reverse
// y == 123.45

하나의 구현은 다음과 같습니다. (올바르게 작동합니다)

class Numeric
  def reverse
    str = self.to_s.reverse

    if self.is_a?(Float)
      return Float(str) # or str.to_f
    elsif self.is_a?(Integer)
      return Integer(str) # or str.to_i
    end
  end
end

그러나 유형 목록을 확인하는 대신 결과를 동적으로 만들고 싶습니다. 나는 사용해 보았다 Class.new():

class Numeric
  def reverse
    str = self.to_s.reverse
    self.class.new(str)
  end
end

Float('123.45')또는을 ( 를) 호출 할 수 있기 때문에 이것이 작동 할 것이라고 생각했습니다 Integer('123'). 그러나 다음 오류가 발생합니다.

irb(main):047:0> (54.321).reverse
NoMethodError: undefined method `new' for Float:Class
    from (irb):44:in `reverse'
    from (irb):47
    from /Users/aaron/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
irb(main):048:0> (123).reverse
NoMethodError: undefined method `new' for Fixnum:Class
    from (irb):44:in `reverse'
    from (irb):48
    from /Users/aaron/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'

그래서 두 가지 질문이 있습니다.

  • 어떻게 않습니다 Float('123.45')또는 Integer('123')작업들은 구현하지 않는 경우 new?
  • Numeric.reverse()조건없이 어떻게 구현할 수 있습니까?

음수와 같이 작동하지 않는 다른 경우가 있다는 것을 알고 있지만 (아직) 그 문제에 대해서는 관심이 없습니다.

표트르 크루 첵
  1. 어떻게 Float('123.45')또는 Integer('123')작업들은 새로운 구현하지 않는 경우?

    그들은 Kernel메서드 Kernel::FloatKernel::Integer각각 여기 에서 더 많은 정보를 호출합니다.

  2. Numeric.reverse()조건없이 어떻게 구현할 수 있습니까?

    이렇게 :

    class Numeric
      def reverse
        str = self.to_s.reverse
        method(self.class.to_s).call(str)
      end
    end
    

    method메서드는 문자열 또는 기호를 메서드로 변환 한 다음 call원하는 문자열을 사용 하여 전달하여 호출 할 수 있습니다 .

    예: method((123.2).class.to_s).call('321') # => 321.0

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

클래스의 생성자는 주어진 유형에 적용 할 수 없습니다 android studio

분류에서Dev

java : 클래스의 생성자 ranngeIpScanner는 주어진 유형에 적용 할 수 없습니다.

분류에서Dev

주어진 확률 R에 따라 무작위로 숫자 생성

분류에서Dev

주어진 확률 R에 따라 무작위로 숫자 생성

분류에서Dev

안드로이드 : CardsActivity.CardPagerAdapter 클래스의 오류 생성자 CardPagerAdapter를 수정하는 방법 주어진 유형에 적용 할 수 없습니다.

분류에서Dev

주어진 목록에서 어떤 숫자로도 나눌 수없는 범위 생성기에서 숫자를 인쇄하는 방법

분류에서Dev

Java '클래스의 생성자는 주어진 유형에 적용 할 수 없습니다.' '필수 : 인수를 찾을 수 없음 : 문자열'

분류에서Dev

어떻게 동적으로 생성 저지 자원 클래스 내 등록 업체를 사용 하는가?

분류에서Dev

동일한 발생으로 주어진 문자에서 고정 길이의 임의 문자열 생성

분류에서Dev

파이썬으로 디렉토리에있는 모든 클래스의 인스턴스를 어떻게 동적으로 생성합니까?

분류에서Dev

생성자에 주어진 크기로 배열 만들기

분류에서Dev

LinearLayout은 주어진 숫자에 따라 동적으로 표시됩니다.

분류에서Dev

주어진 간격에서 숫자 분포를 사용하여 난수 생성

분류에서Dev

동일한 클래스를 가진 여러 형제가있는 키업에서 동적으로 생성 된 개별 텍스트 입력 크기 조정

분류에서Dev

DRF 직렬 변환기 클래스를 동적으로 생성

분류에서Dev

Django ModelAdmin 클래스를 동적으로 생성

분류에서Dev

O (1) 복잡성으로 주어진 범위에서 숫자의 배수를 계산합니까?

분류에서Dev

프로그램 시작시 클래스의 인스턴스를 자동으로 암시 적으로 생성하려면 어떻게해야합니까?

분류에서Dev

주어진 비율에서 무작위 생성 숫자

분류에서Dev

클래스에서 자동으로 생성 된 속성 사용

분류에서Dev

Intellij, 내부 클래스에 대해 자동으로 공개 정적 최종 클래스 EDIT_CLASS_NAME {} 생성

분류에서Dev

주어진 문자열에서 동적으로 클래스 인스턴스를 만들고 사전에 깊은 복사본을 저장합니다.

분류에서Dev

어떻게 자바에서 클래스의 특정 방법은 주기적으로 주어진 기간 동안 내가 단위 테스트 호출 할 수

분류에서Dev

자바 클래스에서 자동으로 jUnit 클래스 생성

분류에서Dev

스택에 현재 클래스를 정적으로 추가하는 ASM LdcInsnNode를 어떻게 생성합니까?

분류에서Dev

동적으로 형성된 선택기를 가진 클래스 / 믹 신을 어떻게 확장합니까?

분류에서Dev

매크로로 케이스 클래스를 "동적으로"생성

분류에서Dev

C ++에서 파일에서 클래스의 여러 객체를 동적으로 생성하려면 어떻게해야합니까?

분류에서Dev

C #에서 동일한 클래스의 여러 개체 인스턴스를 동적으로 생성

Related 관련 기사

  1. 1

    클래스의 생성자는 주어진 유형에 적용 할 수 없습니다 android studio

  2. 2

    java : 클래스의 생성자 ranngeIpScanner는 주어진 유형에 적용 할 수 없습니다.

  3. 3

    주어진 확률 R에 따라 무작위로 숫자 생성

  4. 4

    주어진 확률 R에 따라 무작위로 숫자 생성

  5. 5

    안드로이드 : CardsActivity.CardPagerAdapter 클래스의 오류 생성자 CardPagerAdapter를 수정하는 방법 주어진 유형에 적용 할 수 없습니다.

  6. 6

    주어진 목록에서 어떤 숫자로도 나눌 수없는 범위 생성기에서 숫자를 인쇄하는 방법

  7. 7

    Java '클래스의 생성자는 주어진 유형에 적용 할 수 없습니다.' '필수 : 인수를 찾을 수 없음 : 문자열'

  8. 8

    어떻게 동적으로 생성 저지 자원 클래스 내 등록 업체를 사용 하는가?

  9. 9

    동일한 발생으로 주어진 문자에서 고정 길이의 임의 문자열 생성

  10. 10

    파이썬으로 디렉토리에있는 모든 클래스의 인스턴스를 어떻게 동적으로 생성합니까?

  11. 11

    생성자에 주어진 크기로 배열 만들기

  12. 12

    LinearLayout은 주어진 숫자에 따라 동적으로 표시됩니다.

  13. 13

    주어진 간격에서 숫자 분포를 사용하여 난수 생성

  14. 14

    동일한 클래스를 가진 여러 형제가있는 키업에서 동적으로 생성 된 개별 텍스트 입력 크기 조정

  15. 15

    DRF 직렬 변환기 클래스를 동적으로 생성

  16. 16

    Django ModelAdmin 클래스를 동적으로 생성

  17. 17

    O (1) 복잡성으로 주어진 범위에서 숫자의 배수를 계산합니까?

  18. 18

    프로그램 시작시 클래스의 인스턴스를 자동으로 암시 적으로 생성하려면 어떻게해야합니까?

  19. 19

    주어진 비율에서 무작위 생성 숫자

  20. 20

    클래스에서 자동으로 생성 된 속성 사용

  21. 21

    Intellij, 내부 클래스에 대해 자동으로 공개 정적 최종 클래스 EDIT_CLASS_NAME {} 생성

  22. 22

    주어진 문자열에서 동적으로 클래스 인스턴스를 만들고 사전에 깊은 복사본을 저장합니다.

  23. 23

    어떻게 자바에서 클래스의 특정 방법은 주기적으로 주어진 기간 동안 내가 단위 테스트 호출 할 수

  24. 24

    자바 클래스에서 자동으로 jUnit 클래스 생성

  25. 25

    스택에 현재 클래스를 정적으로 추가하는 ASM LdcInsnNode를 어떻게 생성합니까?

  26. 26

    동적으로 형성된 선택기를 가진 클래스 / 믹 신을 어떻게 확장합니까?

  27. 27

    매크로로 케이스 클래스를 "동적으로"생성

  28. 28

    C ++에서 파일에서 클래스의 여러 객체를 동적으로 생성하려면 어떻게해야합니까?

  29. 29

    C #에서 동일한 클래스의 여러 개체 인스턴스를 동적으로 생성

뜨겁다태그

보관