【发布时间】:2020-11-14 21:39:27
【问题描述】:
我试图在 ruby heredoc 中逃避 %。
property_str =<<~HEREDOC.strip
function string get_type_name();
return $sformatf("%%");
endfunction: get_type_name
property signal_x(ctrl_signal);
@(posedge %{clock}) disable iff(%{reset} || $isunknown(%{reset}) || assertion_disable)
(~$isunknown(ctrl_signal));
endproperty: signal_x
HEREDOC
然后我正在尝试打印它
create_assertions.push(sprintf(property_str % {:clock => %Q(my_clk), :reset => %Q(my_rst)}))
如您所见,我已经两次转义了 %% 和 %,但我仍然不断得到:
script.rb:518:in `sprintf': malformed format string - %" (ArgumentError)
谁能指出我哪里可能出错了?
【问题讨论】: