擅长:python、mysql、java
<p>除了<code>assoc</code>,Hy还可以在<code>get</code>特殊形式上使用<code>setv</code>,或者在<code>.</code>形式上使用<code>[]</code>语法设置索引或键。你知道吗</p>
<pre><code>$ hy spy # Shows Python translation.
[...]
=> (setv lst [1 2 3])
lst = [1, 2, 3]
None
=> (setv (. lst[1]) 20)
lst[1] = 20
None
=> lst
lst
[1, 20, 3]
=> (setv (get lst 2) 30)
lst[2] = 30
None
=> lst
lst
[1, 20, 30]
</code></pre>
<p>当然,这些操作符最终由<code>__setitem__</code>方法支持,您可以像调用任何其他方法一样调用它。你知道吗</p>
<pre><code>=> (.__setitem__ lst 0 10)
lst.__setitem__(0, 10)
=> lst
lst
[10, 20, 30]
</code></pre>
<p>直接使用<code>__setitem__</code>并不比前面提到的其他形式更可取,但它有时在高阶函数中很有用。你知道吗</p>