• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專職C++

            不能停止的腳步

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

            數組的解構與函數變參

            解構

            es6新增了一個解構功能,如下所示

            let [aa,bb,cc]= [1,2,3]; 
            console.log(aa,bb,cc);
            //顯示為1 2 3
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3

            也就是將右邊數組的元素依次賦值給左邊數組列表中變量 .

            • 也可以是已經定義好的變量
            let aa,bb,cc; 
            [aa,bb,cc] = [1,2,3];
            • 1
            • 2
            • 1
            • 2
            • 可跳過,一些變量
            let [aa,,cc] = [1,2,3];
            • 1
            • 1
            • 可少于變量數量
            let [aa,bb,cc] = [1,2];   //cc===undefined; 
            //或let [aa,bb,cc] = [1,,3]; //bb===undefined;
            • 1
            • 2
            • 1
            • 2
            • 也可以用于函數返回多值
            function mmm(v) {     
            if(v=== true) {
            return [true,1,2,3];
            }
            else{
            return [false];
            }
            }
            let [result,bb,cc,dd] = mmm(true);
            if(result) {
            console.log(bb,cc,dd);
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12

            這個和lua的多值返回一樣的效果.可以簡化一些函數返回處理

            變量 操作符…

            對于函數變量,es2015增加了操作符…,實際上也是數組,大大簡化了變參的操作. 
            對于參數名稱,建議使用默認的args 
            - 常見使用

            function sum(…args) {
            let r = 0;
            for(let i = 0; i < args.length; i++) {
            r += args[i];
            }
            return r;
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 再調變參函數
            function printLog(…args) {
            console.log(…args); //這一步大大簡化了,如果是ES5那就頭痛了.要用arguments,
            }
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3
            • 還可以很輕松的擴展參數
            function printLog(…args) {
            console.log("專有前綴",…args,"專有后綴");
            }
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3
            • 因為…args是一個數組,也就是它可以用數組的方法操作.
            function printLog(...args) {
            for(let i = 0; i < args.length; i++) {
            console.log(args[i]);
            }
            args.push("end");
            console.log(...args);
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 用…還可以將數組插入的新數組中去,
            let u = [1,2,3]; 
            let u1 = […u,4,5];
            console.log(u1); //顯示為[1,2,3,4,5];
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3

            后記

            到此,所有數組和相關筆記就沒有了,期待Node.js能完整支持es6,省得用babel再編譯了.再復雜的東西,都是由最簡單的元素組成.如果忽視最簡單的元素,就像JavaScript中的let,const,for,數組等,如果不能充分的理解和使用,你所的”高深代碼”能好到哪里去呢?

            posted @ 2017-03-29 17:09 冬瓜 閱讀(1495) | 評論 (0)編輯 收藏

                 摘要: 前面一篇,我們寫了數組的基礎,在這里則會把主要的方法和應用列出來.
            對于迭代方法和歸并方法只是一個簡化代碼的作用,可能這些方法功能非常見,所以干脆默認提從了這兩組方法。對于js的數組,使用起來非常方法,相比c/c++真是無與倫比…。在C++11標準后,也可以同樣提供一個強大的動態(tài)數組。但是js的數組,可以存放任何元素,這個是C++不能比的,雖然可以實現(xiàn),但是代價就有點大了。相對來說,現(xiàn)在版本的java和C#,則可以。因為java所有的都是Object…  閱讀全文
            posted @ 2017-03-07 18:03 冬瓜 閱讀(1482) | 評論 (0)編輯 收藏

            Array 類型恐怕是 ECMAScript 中最常用的類型了。而且,ECMAScript 中的數組與其他多數語<言中的數組有著相當大的區(qū)別。
            雖然 ECMAScript 數組與其他語言中的數組都是數據的有序列表,但與其他語言不同的是,ECMAScript 數組的每一項可以保存
            任何類型的數據。也就是說,可以用數組的第一個位置來保存字符串,用第二位置來保存數值,用第三個位置來保存對象,以此
            類推。而且,ECMAScript 數組的大小是可以動態(tài)調整的,即可以隨著數據的添加自動增長以容納新增數據。算是萬能的容器.

            JS中的數組還有很多功能,這篇先講講基礎

            創(chuàng)建數組

            用new方法

            下面是一組用new Array創(chuàng)建數組,實際上,也可以不用new,直接使用Array也是一樣的

            1: let a = new Array(); //這里創(chuàng)建了一個沒有元素的空數組 
            2: let a = new Array(10); //這里創(chuàng)建了元素個數為20的數組
            3: let a = new Array(1,2,3,"aaaa"); //這里創(chuàng)建指定數組元素的數組
            //等同于
            1: let a = Array(); //這里創(chuàng)建了一個沒有元素的空數組
            2: let a = Array(10); //這里創(chuàng)建了元素個數為20的數組
            3: let a = Array(1,2,3,"aaaa"); //這里創(chuàng)建指定數組元素的數組
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7

            用[]

            下面是一組用[]創(chuàng)建數組的辦法,多數用這種方法比較簡潔

            4:let a = []; //創(chuàng)建一個空數組 
            5:let a=[1,2,3,"aaa"];//指定元素列表的創(chuàng)建數組
            6:let a = [1,,2];//指定元素列表,但是會跳過若干元素創(chuàng)建數組 //跳過的部分為#ff0000
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            length屬性

            對于數組的長度,用屬性length可以獲得


            可以通過設置該值,來改變數組的大小 
            也可以能過下標設置,如

            let a = [1,2,3]; 
            a[10]=99;
            console.log(a);
            //結果為[ 1, 2, 3, , , , , , , , 99 ],也就是在沒有的位置插入了undefined
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            [下標]訪問

            用[下標]的方式,可以訪問數組的元素 
            例:

            let a=[3,2,1]; 
            for(let i = 0; i < a.length; i++){
            console.log(a[i]);
            }
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            如果對數組越辦訪問,得到的將是undefined,

            數組遍歷方法:

            //方法一 
            let a = [1,2,3,4,5];
            for(let i in a){
            console.log(a[i]);
            }
            //方法二
            for(let e of a){
            console.log(e);
            }
            //方法三
            for(let i = 0; i < a.length; i++) {
            console.log(a[i]);
            }
            //方法四
            a.forEach((e)=>{
            console.log(e);
            });
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17

            四個執(zhí)行結果是一樣的.

            判斷是否為數組

            let a = [1,2,3,45]; 
            let b = 1129;
            console.log(Array.isArray(a),Array.isArray(b));
            //顯示為true false
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            將數組變成字符串

            數組的toString,toLocaleString會生成以逗號分隔的元素列表的字符串toString會調用每個元素的toString 而toLocalString則會調用每個元素的toLocalSetring方法. 
            join方法,則會以toString生成字符串,但是分隔符是參數中指定的,而不是默認的逗號

            let a=[1,2,3]; 
            let b = a.join("A");
            //結果b="1A2A3";
            let c = a.toString();
            //c='1,2,3'
            let d = a.toLocaleString();//d='1,2,3'
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            基礎篇先到這里

            posted @ 2017-03-03 14:24 冬瓜 閱讀(1541) | 評論 (0)編輯 收藏

                 摘要: 因為有注冊到Embarcadero,所以還能常常收到Embarcadero郵件。告訴我現(xiàn)在是10.1.2版本了

            以前還申請過免費的序列號,但是就一直沒有用過。Delphi/C++Builder太大了,幾十個G,看到我弱小的C盤,

            只好放棄了,以前還會安裝2010版本的,有空拿來做一下工具,現(xiàn)在都好久沒有安裝了。

            好懷念當年的Turbo C!  閱讀全文
            posted @ 2017-02-28 10:31 冬瓜 閱讀(1572) | 評論 (0)編輯 收藏

                 摘要: cppblog人氣真不行了,目前只有我和eryar兩個人在發(fā)博!!!雖然暫時沒有搞C++了,但是其他人呢?各位來點人氣  閱讀全文
            posted @ 2017-02-27 19:44 冬瓜 閱讀(2024) | 評論 (2)編輯 收藏

                 摘要: 注:關于node-heapdump請看 使用node heapdump

            基于appium源碼 1.6.3 運行,發(fā)現(xiàn)運行一段時間后,會出現(xiàn)內存溢出.
            用node-heapdump生成heap快照 發(fā)現(xiàn)多了很多字符串對象:內容如下  閱讀全文
            posted @ 2017-02-23 20:35 冬瓜 閱讀(2033) | 評論 (0)編輯 收藏

                 摘要: 在使用appium的過程中,發(fā)現(xiàn)有內存泄露,最后就process out of memory了,就掛了
            網上用使用增加運行內存的方式(還是抗不住),沒辦法,就只好找出內存泄露的地方了
            對node.js很多文章,都是說用memwatch,結果發(fā)現(xiàn),這個是一個死項目,有四年沒有更新過了,在現(xiàn)有的環(huán)境下,是沒有辦法編譯的。
            然后又有一個memwatch-next,顧名思義,就是memwatch的下一個版本,結果是果然也可以編譯,一些事件也支持,但是要headdump后要end后,就掛了。
            國內,用百度,你一萬年都別想解決問題,估計找成人不宜的東西,百度世界第一名,google也不比過百度。  閱讀全文
            posted @ 2017-02-23 14:28 冬瓜 閱讀(2512) | 評論 (0)編輯 收藏

                 摘要: 這里是基于node的xmldom上擴展的工具,在使用appium的時候,常常需要用source功能來分析當前上下文,所以擴展了若干函數,用于分析。這些代碼是基于node 6.9.x JavaScript ES6語法實現(xiàn)。(關于如何在node使用ES6的語法,請參考我的前文:js筆記四:node 6.9.x for gulp完整配置過程)完成代碼如下:xml_utils.jsCo...  閱讀全文
            posted @ 2017-02-20 14:31 冬瓜 閱讀(1309) | 評論 (0)編輯 收藏

                 摘要: 在node下,需要常常用目錄的多級操作,所以用博客做一個記錄  閱讀全文
            posted @ 2017-02-14 15:09 冬瓜 閱讀(2600) | 評論 (0)編輯 收藏

                 摘要: 這世界上已經有很多開發(fā)工具了。現(xiàn)在基于node.js上開發(fā),對了了一下:visual studio 2015+ntvs ,webStorm,Atom,Sublime,editplus,notepad++和vscode,最終選擇了vscode。
            vs2015太大了,不是跨平臺,ntvs這個插件對node.js和js支持還不夠好。
            webStorm也是一個非常不錯的,相對vscode,還是有點大,重點它是收費的。  閱讀全文
            posted @ 2017-02-10 14:50 冬瓜 閱讀(2652) | 評論 (0)編輯 收藏

            僅列出標題
            共17頁: 1 2 3 4 5 6 7 8 9 Last 
            欧美日韩精品久久久久| 老司机国内精品久久久久| 97久久国产亚洲精品超碰热| 色播久久人人爽人人爽人人片aV| 久久亚洲国产欧洲精品一| 久久超碰97人人做人人爱| 久久夜色精品国产欧美乱| 免费精品国产日韩热久久| 久久精品中文字幕一区| 国产成人久久精品二区三区| 久久99国内精品自在现线| 伊人久久精品无码二区麻豆| 国产精品久久久久久久人人看| 久久久精品波多野结衣| 欧美激情精品久久久久| 久久久久久午夜成人影院| 精品久久久无码人妻中文字幕豆芽| 亚洲欧美日韩中文久久| 精品蜜臀久久久久99网站| 久久97精品久久久久久久不卡| 亚洲嫩草影院久久精品| 久久五月精品中文字幕| 久久久久青草线蕉综合超碰| 久久综合给合久久狠狠狠97色69| 国内精品久久久久影院免费| 欧美性猛交xxxx免费看久久久| 久久久久久国产精品美女| 久久99精品久久久久久久不卡| 国产精品无码久久综合网| 一本久久免费视频| 久久久久亚洲AV成人片| 狠狠色综合久久久久尤物| 久久久久久久久久久久久久| 国产成人综合久久综合| 久久天天躁狠狠躁夜夜av浪潮 | 欧美久久精品一级c片片| 亚洲欧美精品一区久久中文字幕| 久久99国产综合精品女同| 亚洲人成无码久久电影网站| 久久精品国产精品青草app| 97视频久久久|