destructuring

    13熱度

    4回答

    在let形式(Clojure的在這裏)我可以做這樣的事情 (let [[u s v] (svd A)] (do-something-with u v)) 其中svd返回長度爲三的名單。這是一個很自然的那種做事情,所以爲什麼不說我們沒有,我們有 (def [u s v] (svd A)) 及其各種概括爲def形式的默認行爲?我不明白這會如何影響def已經在做的任何事情。能理解Lis

    4熱度

    1回答

    最近,我一直在尋找到Firefox Add-on Builder SDK源,無意中發現了這樣的常量聲明: const { getCodeForKey, toJSON } = require("../../keyboard/utils"); 我能找到的有關CommonJS Modules,但這項任務的左側部分稍微讓我困惑,因爲它必須是語言特定的,並且我不能在Google上做任何事情。 有人能指點

    22熱度

    1回答

    你可以解構一個函數參數,但仍然有原始的可用?我現在做的方式是在函數體內使用let表單,但是我想知道是否有一種更簡潔的方法。

    6熱度

    2回答

    val m: java.util.Map[String, Int] = ... m.foreach { entry => val (key, value) = entry // do stuff with key and value } 是否有更好的方法來解構Map.Entry?我嘗試以下,但它不會編譯: m.foreach { (key, value) =>

    66熱度

    12回答

    變量賦值在像Python 2和Python 3其他語言,你可以定義和賦值給一個元組變量,並檢索它們的值是這樣的: tuple = ("Bob", 24) name, age = tuple print(name) #name evaluates to Bob print(age) #age evaluates to 24 有什麼在JavaScript中相似?還是我只是有一個數組來

    7熱度

    4回答

    Clojure中,我可以解構的地圖是這樣的: (let [{:keys [key1 key2]} {:key1 1 :key2 2}] ...) 這是類似的CoffeeScript的方法: {key1, key2} = {key1: 1, key2: 2} CoffeeScript中也可以做到這一點: a = 1 b = 2 obj = {a, b} // just like

    2熱度

    1回答

    我知道在LISP宏參數中解構是一件好事,我想知道是否是必不可少的。作爲一個例子, (defmacro m1 (a) (car a)) 和 (defmacro m2 ((a1 a2)) a1) 似乎是(大約)等效 - 除了用於檢查的參數(一個或多個)的適當形式。 我的猜測是解構使得代碼更容易編寫/理解,但是使用它的任何代碼都可能被翻譯成沒有的代碼。我是對的還是這是一個愚蠢的初學者的錯誤?

    3熱度

    2回答

    我一直在使用Clojure玩弄,並決定將結合會員名:mapcat和列表來模擬這種行爲高階函數: Clojure> (mapcat list '(1 2 3 4) '(5 6 7 8)) (1 5 2 6 3 7 4 8) 我第一次嘗試定義mapcatList如下: Clojure> (defn mapcatList[& more](mapcat list more)) #'sandbox9

    1熱度

    1回答

    我打某種與解構精神障礙的...... (sorted-set 4 2 5) 給出: #{2 4 5} 但我怎麼能得到同樣的有序集合從: : ((fn [???] (sorted-set ???)) [4 2 5]) 或從一組(未分類)作爲參數傳遞 ((fn [???] (sorted-set ???)) #{4 2 5}) 我試瞭解構,我的想法是: ((fn [#{elems}]

    20熱度

    7回答

    我知道我可以一次分配多個變量,多個值用: (foo, bar, baz) = 1, 2, 3 而且具有富= 1巴= 2,依此類推。 但是我怎樣才能使變量的名稱更具動態性?即, somefunction(data,tupleofnames): (return that each name mapped to a single datum) somefunction((1,2,3),