Ruby 使用此处文档打印
Ruby printing using here documents
我对 Ruby 完全陌生。我正在尝试使用一种方法打印 class 的类型和名称,但出现了我无法弄清楚的语法错误:
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 <<TYPE, <<EOF, <<NAME
class_type
TYPE
\n
EOF
class_name
NAME
end
试试这个:
def whatClass()
class_type = self.type
class_name = self.name
puts "#{class_type} \n #{class_name}"
end
有多个错误。
序言:type
和 name
不是标准方法。在下面的示例中,我将其替换为字符串。
当您像这样使用 Here-Documents 时:
puts <<HEREDOC
Heredoc
HEREDOC
然后结束 HEREDOC
必须从第 0 列开始,并且可以没有尾随空格。如果有前导空格,则必须以 <<-HEREDOC
:
开头
puts <<-HEREDOC
Heredoc
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
再说一遍:TYPE
、EOF
和 NAME
中可能没有尾随空格(当我以剪切+粘贴为例时,[=21 处有尾随空格=]).
下一个错误:
输出为
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
我对 Ruby 完全陌生。我正在尝试使用一种方法打印 class 的类型和名称,但出现了我无法弄清楚的语法错误:
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 <<TYPE, <<EOF, <<NAME
class_type
TYPE
\n
EOF
class_name
NAME
end
试试这个:
def whatClass()
class_type = self.type
class_name = self.name
puts "#{class_type} \n #{class_name}"
end
有多个错误。
序言:type
和 name
不是标准方法。在下面的示例中,我将其替换为字符串。
当您像这样使用 Here-Documents 时:
puts <<HEREDOC
Heredoc
HEREDOC
然后结束 HEREDOC
必须从第 0 列开始,并且可以没有尾随空格。如果有前导空格,则必须以 <<-HEREDOC
:
puts <<-HEREDOC
Heredoc
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
再说一遍:TYPE
、EOF
和 NAME
中可能没有尾随空格(当我以剪切+粘贴为例时,[=21 处有尾随空格=]).
下一个错误:
输出为
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