2016-09-10 7 views
0

전적으로 Ruby를 처음 사용합니다. 나는이 방법을 사용하여 유형과 클래스의 이름을 인쇄하려고하지만이 구문 오류를 얻고 난 알아낼 수 없습니다 :여기에 문서를 사용하는 루비 인쇄

def whatClass() 
    class_type = self.type 
    class_name = self.name 

    puts <<TYPE, <<EOF, <<NAME 
     class_type 
    TYPE 
     \n 
    EOF 
     class_name 
    NAME  
end 
+0

<< TYPE, << EOF, << NAME이란 무엇입니까? –

+0

문자열 이름. 이 방법으로 문자열을 만들고 인쇄하는 방법을 읽었습니다. – Marcus

+0

당신의 시각적 기대를 추가 할 수 있습니까? –

답변

3

여러 오류가 있습니다.

프리앰블 : typename은 표준 방법이 아닙니다. 다음 예제에서는 문자열로 바꿉니다.

이 같은 여기-문서 사용하는 경우 :

puts <<HEREDOC 
    Heredoc 
HEREDOC 

그런 다음 닫는 HEREDOC 열 0에서 시작해야하고 후행 공백이 없습니다. 당신이 공간을 선도 한 경우에, 당신은 <<-HEREDOC로 시작해야합니다 :

def whatClass() 
    class_type = 'type' #self.type undefined method `type' 
    class_name = 'name' #self.name 

    puts <<-TYPE, <<-EOF, <<-NAME 
     class_type 
    TYPE 
     \n 
    EOF 
     class_name 
    NAME 
    end 

그리고 다시 :

puts <<-HEREDOC 
    Heredoc 
    HEREDOC 

그래서 예입니다 TYPE, EOFNAME에는 후행 공백이 없을 수도있다 (때 잘라 내기 + 붙여 넣기를 사용하여 예제를 가져와 후행 공백이 NAME에 있음).

다음 오류 :

출력은

 class_type 


     class_name 

하지만 난 당신이 두 변수의 내용을 원하는 생각합니다. 그래서 당신이 필요하다고 생각합니다 :

def whatClass() 
    class_type = 'type' #self.type undefined method `type' 
    class_name = 'name' #self.name 

    puts <<-TYPE, <<-EOF, <<-NAME 
    #{class_type} 
    TYPE 
     \n 
    EOF 
    #{class_name} 
    NAME 
    end 
0

이 시도 : 여기

Code/oop.rb:47: syntax error, unexpected end-of-input 
    puts <<TYPE, <<EOF, <<NAME 
      ^

내 코드입니다 :

def whatClass() 
    class_type = self.type 
    class_name = self.name 
    puts "#{class_type} \n #{class_name}" 

end