<% provide(:title, "Edit Project") %>
<h1>Update your Project</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@project) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :title %>
<%= f.text_field :title, class: 'form-control' %>
<%= f.label :p_type %>
<%= f.select :p_type, ([['QuickWin', 'QuickWin'],
['Project', 'Project']]) %>
<%= f.label :status %>
<%= f.select :status, ([['Not Yet Started', 'Not Yet Started'],
['In Progress', 'In Progress'], ['In Testing', 'In Testing'],
['On Hold', 'On Hold'], ['Launched', 'Launched']]) %>
<div class="field">
<%= f.text_area :description, placeholder: "Briefly summarise the purpose of this project..." %>
</div>
<%= f.submit "Save changes", class: "btn btn-primary" %>
<% end %>
</div>
</div>
x=('hello world' "HELLO")
和${#x[*]}
都打印相同的输出。
我理解${#x[@]}
和$@
之间的区别,但我很有兴趣看到没有命令行参数的区别。
答案 0 :(得分:0)
除非您有理由使用*,否则请始终使用@扩展。 @被添加到解决问题。
两者并不总是相同。涉及*的问题以空格和其他shell元字符开头(特别是引号,但是$和更多)。
*会让shell元字符处于打开状态,以便shell再次处理它们,如果您不想让它们进入数组,这通常会很糟糕。 @通过扩展每个数组元素来保护它们,就像它是一个单独引用的值一样,保留所有元字符完整。