반응형

ruby 5

변수가 해시인지 배열인지 알 수 있는 루비의 우아한 방법은 무엇입니까?

변수가 해시인지 배열인지 알 수 있는 루비의 우아한 방법은 무엇입니까? 무엇을 확인하기 위해@some_var나는 하는 중입니다. if @some_var.class.to_s == 'Hash' 저는 더 우아한 방법으로 확인할 수 있다고요@some_var이다.Hash또는Array.다음을 수행할 수 있습니다. @some_var.class == Hash 또는 다음과 같은 것도 있습니다. @some_var.is_a?(Hash) "is_a?" 방법은 클래스가 개체 조상 트리의 어느 곳에나 있는 경우에 참이라는 것에 주목할 필요가 있습니다.예를 들어: @some_var.is_a?(Object) # => true 위는 @some_var가 객체에서 파생된 해시 또는 다른 클래스의 인스턴스인 경우에 참입니다.클래스 유형에 ..

programing 2023.07.07

Ruby에서 추상 클래스를 구현하는 방법

Ruby에서 추상 클래스를 구현하는 방법 루비에는 추상적인 수업이라는 개념이 없는 것으로 알고 있습니다.하지만 구현이 필요하다면 어떻게 해야 할까요?저는 다음과 같은 것을 시도했습니다. class A def self.new raise 'Doh! You are trying to write Java in Ruby!' end end class B < A ... ... end 하지만, 제가 B를 인스턴스화하려고 하면, 그것은 내부적으로 전화를 걸 것입니다.A.new이는 예외를 제기할 것입니다. 또한 모듈은 인스턴스화할 수 없지만 상속할 수도 없습니다.새 방법을 비공개로 설정해도 작동하지 않습니다. 누구 조언자 있어요?여기서 늦게까지 시간을 내기 위해, 저는 누군가가 추상적인 수업을 인스턴스화하는 것을 막을 이유..

programing 2023.06.27

루비에서 현재 작업 디렉터리의 절대 경로를 얻는 방법은 무엇입니까?

루비에서 현재 작업 디렉터리의 절대 경로를 얻는 방법은 무엇입니까? Windows에서 Ruby를 실행하고 있지만, 그것이 변화를 가져올지는 모르겠습니다.내가 원하는 것은 현재 작업 디렉터리의 절대 경로를 얻는 것입니다.이것이 irb에서 가능합니까?분명히 스크립트를 통해 사용할 수 있습니다.File.expand_path(__FILE__) 그러나 irb에서 다음을 시도했지만 "권한 거부" 오류가 발생했습니다. File.new(Dir.new(".").path).expand Dir.pwd현재 작업 디렉토리입니다. http://ruby-doc.org/core/Dir.html#method-c-pwdFile.expand_path File.dirname(__FILE__)이 명령이 호출된 파일에 상대적인 디렉터리를 반환..

programing 2023.06.07

Ruby에서 메서드를 매개 변수로 전달

Ruby에서 메서드를 매개 변수로 전달 루비랑 좀 놀리려고요.그래서 저는 "프로그래밍 집단지성" 루비라는 책의 알고리즘(파이썬에서 제공)을 구현하려고 노력합니다. 8장에서 작성자는 메소드를 매개 변수로 전달합니다.이것은 Python에서 작동하는 것처럼 보이지만 Ruby에서는 작동하지 않습니다. 방법은 여기 있습니다. def gaussian(dist, sigma=10.0) foo end 그리고 이것을 다른 방법으로 부르고 싶습니다. def weightedknn(data, vec1, k = 5, weightf = gaussian) foo weight = weightf(dist) foo end 내게 주어진 것은 오류뿐입니다. ArgumentError: wrong number of arguments (0 for..

programing 2023.06.02

루비에서 __FILE_은 무엇을 의미합니까?

루비에서 __FILE_은 무엇을 의미합니까? Ruby에서 항상 볼 수 있는 내용입니다. require File.dirname(__FILE__) + "/../../config/environment" 무엇인가.__FILE__비열한?현재 파일 이름에 대한 참조입니다.파일에서foo.rb,__FILE__라고 해석될 것입니다."foo.rb". 편집: Ruby 1.9.2와 1.9.3은 Luke Bayes가 그의 논평에서 말한 것과 조금 다르게 행동하는 것으로 보입니다.다음 파일 사용: # test.rb puts __FILE__ require './dir2/test.rb' # dir2/test.rb puts __FILE__ 입니다.ruby test.rbwill 출력 test.rb /full/path/to/dir2/te..

programing 2023.06.02
반응형