第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
2.1 使用指針

使用指針是為了告訴 C 語言,我們這時希望將原有的變量直接傳入被調(diào)用的函數(shù),而不是一個副本。這種傳入方式在其它的編譯類型的編程語言中也有類似的傳遞方式。

2.4 解構(gòu)賦值

在批量定義有默認(rèn)值的變量時可以使用數(shù)組的解構(gòu)賦值。// badconst a = 1, b = 2, c = 3;// goodconst [a, b, c] = [1, 2, 3];在獲取數(shù)組或?qū)ο笾兄禃r也可以優(yōu)先使用解構(gòu)的方式:const arr = [1, 2, 3, 4];const obj = {a: 1, b: 3};// badconst x = arr[0];const y = arr[1];const a = obj.a;const b = obj.b;// goodconst [x, y] = arr;const [a, b] = obj;在函數(shù)參數(shù)中,如果函數(shù)接收的參數(shù)是一個對象時,可以直接在函數(shù)的括號中解構(gòu)對象,這樣可以在函數(shù)內(nèi)部之間使用變量。// badfunction getFullName(user) { const firstName = user.firstName; const lastName = user.lastName;}// goodfunction getFullName(obj) { const { firstName, lastName } = obj;}// bestfunction getFullName({ firstName, lastName }) {}對于函數(shù)中有返回值是對象時,對象中屬性名和要返回的變量名相同時可以省了變量。// badfunction foo() { const a = 'aaa'; const b = 'bbb'; return { a: a, b: b }}// goodfunction foo() { const a = 'aaa'; const b = 'bbb'; return { a, b }}

2.6 yarn cache

解釋:用來管理用戶緩存的依賴使用場景:當(dāng)你想查看本地緩存了哪些 Yarn 的依賴,以及具體各個依賴項(xiàng)的詳細(xì)信息,可以使用該命令具體使用:yarn cache dir運(yùn)行這個命令會顯示出當(dāng)前緩存目錄,默認(rèn)為 C 盤。例如我的電腦路徑是: C:\Users\**\AppData\Local\Yarn\Cache\v6yarn cache list展示所有已緩存的依賴項(xiàng)信息:yarn cache clean對本地緩存的依賴進(jìn)行強(qiáng)制清除經(jīng)驗(yàn):本地有很多項(xiàng)目時,有時會發(fā)現(xiàn)用來存放依賴的磁盤空間越來越小,這也許是因?yàn)榫彺媪颂酂o用的依賴。或者安裝依賴時用了很多辦法都解決不了的,如依賴版本錯誤,可以考慮查看并清除本地的依賴緩存。

3. 小結(jié)

標(biāo)準(zhǔn)的重要性不用過多贅述,如同大家使用的眾多版本的安卓手機(jī),和只有一個版本的蘋果手機(jī)系統(tǒng)一樣。過多的標(biāo)準(zhǔn)會讓開發(fā)者無所適從,各自對于自己系統(tǒng)的魔改優(yōu)化,只能讓普通用戶陷入深淵。因此為了避免各自為政的情況出現(xiàn), C 語言很早就有了自己的標(biāo)準(zhǔn),這樣就可以完成一統(tǒng)天下的局面。雖然各個編譯器有自己的局部特點(diǎn),但是總體而言,只要是按照 C 語言標(biāo)準(zhǔn)編寫的程序可以在任何一個編譯器上通過編譯。

3. 字符類型

在 Kotlin 中字符用 Char 類型表示。并且不能像 Java 一樣可以直接當(dāng)作數(shù)字:fun testChar(char: Char) { if(char == 4) {...}//此處會提示類型不匹配的異常}字符的值用單引號括起來: '1'。 特殊字符可以用反斜杠轉(zhuǎn)義。 支持這幾個轉(zhuǎn)義序列:\t、 \b、\n、\r、\'、\"、\\ 與 \$。 編碼其他字符要用 Unicode 轉(zhuǎn)義序列語法:'\uFF00'。雖然不能直接把它當(dāng)作數(shù)字來用,但是我們可以通過decimalDigitValue函數(shù)將字符轉(zhuǎn)換成數(shù)字,注意可空類型 Char? 類型會存在裝箱操作fun decimalDigitValue(c: Char): Int { if (c !in '0'..'9') throw IllegalArgumentException("Out of range") return c.toInt() - '0'.toInt() // 顯式轉(zhuǎn)換為數(shù)字}

5. Nginx 服務(wù)的操作

$ cd /root/nginx/sbin# 查看版本信息$ ./nginx -v# 查看詳情,可以看到編譯進(jìn)Nginx中的模塊$ ./nginx -V# stop|quit: 停止服務(wù),區(qū)別和windows中的一致 reload:熱加載 reopen:重新打開日志文件$ ./nginx -s stop|reload|reopen # -c 指定配置文件,默認(rèn)就是Nginx安裝目錄下的conf/nginx.conf文件$ ./nginx -c /root/nginx/conf/nginx.conf # -t 測試配置文件語法是否正常$ ./nginx -tc /root/nginx/conf/nginx.conf 來看看在服務(wù)器上執(zhí)行 Nginx 命令的結(jié)果:$ cd /root/nginx/sbin$ ./nginx -tnginx: the configuration file /root/nginx/conf/nginx.conf syntax is oknginx: configuration file /root/nginx/conf/nginx.conf test is successful$ ./nginx -Vnginx version: nginx/1.17.6built by gcc 7.4.0 (Ubuntu 7.4.0-lubuntu1~18.04.1)built with OpenSSL 1.0.2k-fips 26 Jan 2017TLS SNI support enabledconfigure arguments: --prefix=/root/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-stream --with-http_realip_module --with-http_flv_module --with-http_random_index_module --with-mail --with-pcre

2. 語法詳解

在 Markdown 中,我們可以通過 <sub> 和 <sup> 標(biāo)簽來實(shí)現(xiàn)上標(biāo)和下標(biāo)。實(shí)例 1:使用上標(biāo)表示數(shù)學(xué)公式。a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>其渲染效果如下:實(shí)例 2:使用上標(biāo)表示特殊語義。Windows 10 <sup>TM</sup>其渲染效果如下:實(shí)例 3:使用下標(biāo)書寫化學(xué)公式。2KClO<sub>3</sub> ==== 2KCl + 3O<sub>2</sub>↑其渲染效果如下:實(shí)例 4:上標(biāo)下標(biāo)嵌套使用。a<sup>b<sub>c<sup>d</sup></sub></sup>其渲染效果如下:實(shí)例 5:使用特殊符號作為上標(biāo)。IMOOC<sup>?</sup>其渲染效果如下:

1.1 概念

表達(dá)式,是由數(shù)字、運(yùn)算符、數(shù)字分組符號(括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。約束變量是在表達(dá)式中已被指定數(shù)值,而自由變量則可以在表達(dá)式之外另行指定數(shù)值。在 Java 中,表達(dá)式是根據(jù) Java 語法由變量、運(yùn)算符和方法調(diào)用組成的結(jié)構(gòu),表達(dá)式的結(jié)算結(jié)果為單個值。表達(dá)式實(shí)例:447上面代碼中,(a + b) * 2 就是一個算數(shù)表達(dá)式,而 c > b 就是一個布爾表達(dá)式,代碼中的 if 語句將在下一小節(jié)講到,此處只需知道 c > b 是一個表達(dá)式即可。下面我們將圍繞算數(shù)表達(dá)式和布爾表達(dá)式來學(xué)習(xí)表達(dá)式。

2.1 SDS 數(shù)據(jù)結(jié)構(gòu)

2.1.1 定義字符串是 Redis 中最常用的數(shù)據(jù)類型。Redis 里的五種基礎(chǔ)數(shù)據(jù)類型都是以唯一字符串作為 Key,通過這個 Key 映射不同的 Value 數(shù)據(jù),不同數(shù)據(jù)類型的差異在于存儲 Value 不同,String 類型的 Value 是字符串,List 類型的 Value 是列表。Redis 沒有使用 C 語言原生的字符數(shù)組表示字符串,而是定義了一個字符串結(jié)構(gòu)體 SDS(Simple Dynamic String,簡單動態(tài)字符串)。SDS的結(jié)構(gòu)體定義如下:struct sdshdr{ //記錄buf數(shù)組中已使用字節(jié)的數(shù)量,等于SDS中已使用字符串的長度 int len; //記錄buf數(shù)組中未使用字節(jié)的數(shù)量 int free; //字節(jié)數(shù)組,用于保存字符串 char buf[];}然后候選人可以結(jié)合畫圖的方式解釋SDS的數(shù)據(jù)結(jié)構(gòu):? ("mooc"字符串存儲示意圖) 如上圖所示,當(dāng)前字符串長度len = 4,未使用長度free = 0,buf數(shù)組存儲的內(nèi)容是"mooc\0"。注意:C 語言中的字符串都是以'\0'結(jié)尾,并且計(jì)算len值時不包含末尾的'\0';另外,長度為零的數(shù)組即char[] buf不占用內(nèi)存。其次,我們需要闡述 SDS 數(shù)據(jù)結(jié)構(gòu)的優(yōu)點(diǎn):2.1.2 常量時間獲取字符串長度對于傳統(tǒng)的 C 字符串,如果要獲取字符串長度,例如調(diào)用strlen()函數(shù),會從頭開始遍歷字符串直到遇到'\0',時間復(fù)雜度為O(n);對于 SDS 數(shù)據(jù)結(jié)構(gòu),能直接訪問len屬性獲取字符串長度,時間復(fù)雜度為O(1) ,獲取字符串長度的操作不會成為 Redis 的性能瓶頸。2.1.3 避免緩沖區(qū)溢出傳統(tǒng) C 語言字符串不會記錄本身長度,在復(fù)制字符串的時候,如果分配的內(nèi)存不夠,會造成緩沖區(qū)溢出。SDS 復(fù)制字符串時,會首先檢查 free 變量,判斷內(nèi)存空間是否符合復(fù)制要求,如果不滿足的話,會將空間擴(kuò)展到所需要的程度,再執(zhí)行復(fù)制操作,不存在緩沖區(qū)溢出的問題。2.1.4 減少內(nèi)存分配次數(shù)傳統(tǒng) C 語言在對字符串進(jìn)行修改時,會對數(shù)組重新分配內(nèi)存,這個過程可能會涉及操作系統(tǒng)的系統(tǒng)調(diào)用,耗時較長。在 Redis 中, SDS 提供了空間預(yù)分配和惰性空間釋放兩種優(yōu)化規(guī)則:規(guī)則一:空間預(yù)分配規(guī)則調(diào)用 SDS 的 API 對 SDS 進(jìn)行修改時,API 不僅會分配本次修改需要的內(nèi)存空間,還會分配額外的內(nèi)存空間。這里遵循的兩種定量分配規(guī)則:sdshdr的len字段值 < 1MB時,會分配和len同樣大小的未使用空間;sdshdr的len字段值 > 1MB時,會分配1MB的未使用空間。其中檢測是否超過容量的C語言方法:static int checkStringLength(client *c, long long size) { // 字符串長度為512M,如果超過,直接拋出錯誤,結(jié)束函數(shù) if (size > 512*1024*1024) { addReplyError(c,"string exceeds maximum allowed size (512MB)"); return C_ERR; } return C_OK;}(SDS重新分配空間示意圖)如上圖所示,我們在 "mooc" 的基礎(chǔ)上添加了’s’的字符,并且預(yù)留了一個字符的空間,所以free=1,規(guī)則二:惰性空間釋放規(guī)則當(dāng)調(diào)用 SDS API縮短 SDS 字符串時,程序不會立即回收內(nèi)存空閑的字節(jié),而是使用上述結(jié)構(gòu)體中的free字段將空閑字節(jié)記錄下來,將來如果有修改操作,則直接使用已分配的空閑內(nèi)存,避免了重新分配。2.1.5 二進(jìn)制安全SDS可以存儲任何二進(jìn)制數(shù)據(jù),包括'\0',因?yàn)榕袛?SDS 是否達(dá)到字符串終點(diǎn)不是通過末尾'\0'判斷,而是通過len字段值。傳統(tǒng) C 語言則是遇到'0'則判定字符串結(jié)束,所以傳統(tǒng)字符串不能存儲圖片、視頻等文件(遇到編碼'\0'則數(shù)據(jù)會被截?cái)啵?/p>

2. 概述

Pandas 庫中的算術(shù)運(yùn)算是數(shù)據(jù)集之間,根據(jù)索引進(jìn)行運(yùn)算的,如果存在不同的索引對,運(yùn)算的結(jié)果是相同索引數(shù)據(jù)和不同索引數(shù)據(jù)的并集,并且用 NaN 填充運(yùn)算結(jié)果。當(dāng)進(jìn)行對應(yīng)索引列之間的加減乘除運(yùn)算時,要注意對應(yīng)索引列之間的類型是否相同,如果不同類型進(jìn)行運(yùn)算時會報類型轉(zhuǎn)換錯誤,同時,要考慮到該類型是否能進(jìn)行某種算術(shù)運(yùn)算,比如字符串之間的加法運(yùn)算是可以的,但是字符串之間是不存在減法、乘法和除法運(yùn)算的,否則會報錯。在正式講解各算術(shù)運(yùn)算之前,我們先將 DataFrame 數(shù)據(jù)對象,通過 Excel 數(shù)據(jù)解析的方式進(jìn)行創(chuàng)建,針對 Series 對象,在每次操作時,根據(jù)需要我們單獨(dú)再創(chuàng)建。# 導(dǎo)入pandas包import pandas as pddata_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第13小節(jié)/execl數(shù)據(jù)demo.xlsx"# 解析數(shù)據(jù)data = pd.read_excel(data_path)print(data)# --- DataFrame數(shù)據(jù)解析結(jié)果 --- 編程語言 推出時間 價格 主要創(chuàng)始人0 java 1995年 45.6 James Gosling1 python 1991年 67.0 Guido van Rossum2 C 1972年 33.9 Dennis MacAlistair Ritchie3 js 1995年 59.5 Brendan Eich4 php 2012年 69.9 Rasmus Lerdorf5 C++ 1983年 75.0 Bjarne Stroustrup

5.1 Windows 安裝失敗

Postman 在 Windows 安裝過程失敗,提示:Could Not open Postman Please contacthelp@getpostman.com解決辦法:找到兩個緩存路徑刪除文件即可(如果提示運(yùn)行先在后臺關(guān)閉 Postman 相關(guān)程序再次進(jìn)行刪除):C:\Users\Administrator\AppData\Roaming\PostmanC:\Users\Administrator\AppData\L ocal\Postman刪除文件完畢再次安裝即可。

3. Lodash 的使用

同樣地,要使用 Lodash,我們需要先通過 npm install --save lodash 安裝 Lodash。在使用 lodash 之前,通過 import _ from "lodash" 引入 Lodash 包。此時,我們就可以在項(xiàng)目中使用 Lodash 給我們提供方法了:<script>import _ from "lodash";export default { name: "Home", created() { const str = _.join(["a", "b", "c"], "~"); console.log(str); }, components: {}};</script>

2.2 使用 Pandoc 導(dǎo)出 HTML

如果只有 Markdown 源文件,在不通過 Markdown 編輯器的情況下,還可以使用 Pandoc 將其直接轉(zhuǎn)換成 HTML 文件。Pandoc 是一種標(biāo)記語言轉(zhuǎn)換工具,可實(shí)現(xiàn)不同標(biāo)記語言間的格式轉(zhuǎn)換。Pandoc 的安裝方法參見其 Github 項(xiàng)目頁。實(shí)例 1:使用 Pandoc 將 Markdown 轉(zhuǎn)換為 Html。pandoc in.md -o out.html實(shí)例 2:轉(zhuǎn)換時增加外部樣式文件引用,如:style.css。pandoc in.md -c style.css out.html注意:此時輸出的是一個目錄。實(shí)例 3:將所有外部文件都嵌入到單個 HTML 文件中,包括嵌入視頻、圖片等。pandoc -s --self-contained -c style.css in.md -o out.htmlMarkdown 有一些擴(kuò)展語法,比如「Mermaid」,「數(shù)學(xué)公式」等,要支持此類功能,Pandoc 也需要一些插件的支持,例如:Memaid-Filter 可用于渲染 Mermaid 圖像。

4.7 布爾運(yùn)算

可能與其他的語言不太相同,Sass 中的布爾運(yùn)算使用的不是運(yùn)算符而是單詞,所以 Sass 中的布爾運(yùn)算是 not 、and 和 or,not 的意思是取反,and 的意思是兩個都為真則返回真反之則返回假,or 的意思是其中一個為真則返回真??吹竭@你可能懂了,這不就是我們常說的邏輯非、邏輯與和邏輯或嘛,下面我們舉個例子來看下:{ a: true and true; b: true or false; c: true and false; d: not false;}那么上面這段代碼在 Sass 中會轉(zhuǎn)換為:{ a: true; b: true; c: false; d: true;}布爾運(yùn)算在實(shí)際寫樣式的時候基本是不會用到的,大家也不會直接在樣式中應(yīng)用,一般布爾運(yùn)算會應(yīng)用在 Sass 函數(shù)中。

2.10 dropLastWhile 操作符

從集合的最后一項(xiàng)開始去掉滿足條件元素,這樣操作一直持續(xù)到出現(xiàn)第一個不滿足條件元素出現(xiàn)為止,返回剩余元素(可能剩余元素有滿足條件的元素)。public inline fun <T> List<T>.dropLastWhile(predicate: (T) -> Boolean): List<T> { if (!isEmpty()) { val iterator = listIterator(size)//表示從原集合尾部開始向頭部迭代 while (iterator.hasPrevious()) {//當(dāng)前元素存在上一個元素進(jìn)入迭代 if (!predicate(iterator.previous())) {//直到出現(xiàn)上一個元素不符合條件,才開始取相應(yīng)后續(xù)元素,加入到新集合中 return take(iterator.nextIndex() + 1) } } } return emptyList()}原理圖解使用場景使用的場景和 dropWhile 類似,不過刪除元素順序不一樣。fun main(args: Array<String>) { val strList = listOf("java", "javaScript", "kotlin", "C", "C++", "javaFx", "python","Go", "Swift", "Scala") strList.dropLastWhile { it.startsWith("S") }.forEach { print("$it ") }}

2.1 isnull () 函數(shù)

該函數(shù)用來檢測缺失值,如果是缺失值 NaN 則數(shù)據(jù)返回的是 True,不是缺失值返回的是 False。# 導(dǎo)入pandas包import pandas as pddata_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第11小節(jié)/execl數(shù)據(jù)demo.xlsx"# 解析數(shù)據(jù)data = pd.read_excel(data_path)print(data)# --- 輸出結(jié)果 --- 編程語言 推出時間 價格 主要創(chuàng)始人0 java NaN 45.6 James Gosling1 python 1991年 67.0 NaN2 NaN 1972年 NaN Dennis MacAlistair Ritchie3 js NaN NaN Brendan Eich4 php 2012年 NaN Rasmus Lerdorf5 C++ 1983年 75.0 Bjarne Stroustrup# 檢查是否是缺失值data.isnull()# --- 輸出結(jié)果 --- 編程語言 推出時間 價格 主要創(chuàng)始人0 False True False False1 False False False True2 True False True False3 False True True False4 False False True False5 False False False False輸出解析:通過結(jié)果可以看到,是缺失值 NaN 的數(shù)據(jù),在該函數(shù)檢查后,都返回了 True,否則則是 False。

6. 解構(gòu)賦值與擴(kuò)展運(yùn)算符

對數(shù)組和 Set 結(jié)構(gòu)進(jìn)行解構(gòu)賦值時,會默認(rèn)調(diào)用 Symbol.iterator 方法:let [head, ...tail] = [1, 2, 3, 4]// tail = [2, 3, 4]擴(kuò)展運(yùn)算符也會調(diào)用默認(rèn)的 Iterator 接口,得到一個數(shù)組結(jié)構(gòu):let arr = [...'imooc']console.log(arr) // ['i','m','o','o','c']

1.1 例子

一個包含 3 個變量的命名空間,如下圖所示:圖: 定義了 3 個變量的命名空間第一個變量名為 a,值為 1第二個變量名為 b,值為 2第三個變量名為 c,值為 3

2. 分組操作

Pandas 中的分組操作主要通過函數(shù) groupby () 實(shí)現(xiàn),該函數(shù)對數(shù)據(jù)進(jìn)行分組,并不會產(chǎn)生運(yùn)算,分組后會返回一個 groupby 對象,該對象并不能展示數(shù)據(jù),要通過具體的操作函數(shù)才能看到數(shù)據(jù)結(jié)果。首先我們通過 Pandas 解析 Excel 數(shù)據(jù),得到 DataFrame 數(shù)據(jù)對象:# 導(dǎo)入pandas包import pandas as pddata_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第19小節(jié)/execl數(shù)據(jù)demo.xlsx"# 解析數(shù)據(jù)data = pd.read_excel(data_path)print(data)# --- 輸出結(jié)果 --- 編程語言 技術(shù)方向 推出時間 年均銷售數(shù)量 價格 主要創(chuàng)始人0 java 后端 1995年 230 45.6 James Gosling1 HTML 前端 1990年 124 55.3 Daniel W. Connolly2 C 后端 1972年 35 33.9 Dennis MacAlistair Ritchie3 js 前端 1995年 678 59.5 Brendan Eich4 C++ 后端 1983年 125 75.0 Bjarne Stroustrup5 CSS 前端 1990年 254 24.6 Tim Berners-Lee接下來我們進(jìn)行分組操作:# data 為上面解析的數(shù)據(jù)對象# 這里依據(jù)技術(shù)方向列進(jìn)行分組data.groupby('技術(shù)方向')# --- 輸出結(jié)果 ---<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001D618583070># 結(jié)果解析:這里我們使用的是單個索引‘技術(shù)方向’進(jìn)行分組,也可以傳入一個列表進(jìn)行分組。這里可以看到輸出的是一個 DataFrameGroupBy 對象

2.5 在 Windows 下更換源

在 Windows 下更換源的步驟如下:1. 進(jìn)入目錄 Roamingcd C:\Users\Administrator\AppData\Roaming目錄 Roaming 用來存放軟件的配置文件。2. 創(chuàng)建目錄 pipmkdir pip3. 創(chuàng)建文件 pip\pip.ini[global]index-url = https://mirrors.aliyun.com/pypi/simple

3.2 使用記事本創(chuàng)建 Python 源程序

通過一個例子說明如何將 Python 程序保存為文件后運(yùn)行,首先使用記事本在 C 盤根目錄下創(chuàng)建一個文本文件 test.py,如下圖所示:使用記事本創(chuàng)建文本文件 test.py test.py 程序的內(nèi)容如下:print('hello')print('world')

2.2 CLI Shell

Linux 作為服務(wù)器端,運(yùn)行桌面環(huán)境非常消耗資源,因此 CLI Shell 才是我們本次的重點(diǎn),其根據(jù)不同的系統(tǒng)有很多種類。例如我們最常用的主流版本的 Linux 系統(tǒng) CentOS/RHEL 的默認(rèn) Shell 為 bash,當(dāng)然還有很多其他的 Shell,為什么有這么多類型的 Shell 內(nèi)核,因?yàn)閷τ诓煌牟僮飨到y(tǒng)類型,其內(nèi)核都難免存在差異,因此與內(nèi)核交互的 Shell 也就分了不少種類,目前在 Linux 系統(tǒng)上主流的 CLI Shell 都為 Bash,是許多 Linux 發(fā)行版默認(rèn)的 Shell。我們可以在 Linux 系統(tǒng)上 cat /etc/shells 來查看本版本支持的各 Shell 類型,同時可以利用命令 echo $SHELL 來查看當(dāng)前環(huán)境中的默認(rèn) Shell,不同的 Shell 都有其各自的特點(diǎn),目前主流的 Shell 類型如下:Bourne Again Shell(/bin/bash):其為目前主流 Linux 發(fā)行版默認(rèn)的 Shell,其也是 Bourne shell 最早的發(fā)行并免費(fèi)的版本,用戶可以利用其 help 命令來查看幾乎 Shell 的所用功能;Bourne Shell(/usr/bin/sh 或 /bin/sh):是一個快捷方式,后來已經(jīng)被 /bin/bash 所取代;C Shell(/usr/bin/csh):簡單高效,其使用類似 C 語言的語法,后已被 tcsh 取代;K Shell(/usr/bin/ksh):Korn shell 的語法與 Bourne shell 相同,同時具備了 C shell 的易用特點(diǎn),許多安裝腳本都使用 ksh。

4.2 Flame Chart 標(biāo)簽頁

Flame Chart 標(biāo)簽頁提供一個倒置的調(diào)用圖表,用來匯總完全相同的調(diào)用堆棧。也就是說,將具有相同調(diào)用方順序的完全相同的方法或函數(shù)收集起來,并在火焰圖中將它們表示為一個較長的橫條(而不是將它們顯示為多個較短的橫條,如調(diào)用圖表中所示)。這樣更方便我們查看哪些方法或函數(shù)消耗的時間最多。不過,這也意味著,橫軸不代表時間軸,而是表示執(zhí)行每個方法或函數(shù)所需的相對時間。為幫助說明此概念,不妨考慮下圖中的調(diào)用圖表。請注意,方法 D 多次調(diào)用 B(B1、B2 和 B3),其中一些對 B 的調(diào)用也調(diào)用了 C(C1 和 C3)。由于 B1、B2 和 B3 具有相同的調(diào)用方順序 (A → D → B),因此系統(tǒng)將它們匯總在一起,如下圖所示。同樣,也將 C1 和 C3 匯總在一起,因?yàn)樗鼈円簿哂邢嗤恼{(diào)用方順序 (A → D → B → C)。請注意,C2 不包括在內(nèi),因?yàn)樗哂胁煌恼{(diào)用方順序 (A → D → C)。匯總的調(diào)用用于創(chuàng)建火焰圖,如下圖所示。 請注意,對于火焰圖中的任何給定調(diào)用,占用最多 CPU 時間的被調(diào)用方最先顯示。

1.3 編寫 <code>angular</code> 的 <code>js</code> 代碼

同樣的,安裝好了插件之后,我們也能快速方便的寫 angularjs 代碼。比如我們可以試著敲出:@c 然后插件會帶出相應(yīng)的代碼塊,sty,能聯(lián)想出樣式urltemp,甚至更少,就能聯(lián)想出模板url

3. 淺拷貝

Object.assign() 的拷貝屬于淺拷貝,也就是說它只拷貝對下的第一層的屬性值。如果這個值是一個對象類型,那么 Object.assign() 不會對該對象進(jìn)行深拷貝,也就是說,拷貝后的對象下的這個對象類型是源對象和拷貝后的對象共有的,無論誰(源對象或拷貝后對象)對這個對象下的值進(jìn)行修改,另一個對象(源對象或拷貝后對象)也會共享這個改變??聪旅娴睦痈逦谋磉_(dá):var target = {};var source = {a: 1, b: {c: 2, d: 3}};Object.assign(target, source);target.a = 5;target.b.c = 9;console.log(target) // {a: 5, b: {c: 9, d: 3}}console.log(source) // {a: 1, b: {c: 9, d: 3}}上面的代碼中,源對象 source 是個兩層的字面量對象,b 也是一個對象。使用 Object.assign() 拷貝給目標(biāo)對象 target,拷貝后對 target 對象下的值進(jìn)行修改,然后打印目標(biāo)對象和源對象。從打印的結(jié)果可以看出,對 target 第一層的 a 進(jìn)行修改時,源對象是不會改變。但是對 target 下的 b 對象下的值進(jìn)行修改時,因?yàn)?b 也是一個對象,所以源對象中的值也被修改了。到這里可以看出,Object.assign() 沒有對 b 進(jìn)行拷貝。如果需要深拷貝則需要,需要遞歸地使用去 Object.assign() 來拷貝對象。

C 語言中函數(shù)的參數(shù)傳入類型

每個函數(shù)如果獨(dú)立的存在是沒有意義的。所以函數(shù)之間必然是相互通信的。而最常見也最常用的函數(shù)通信的方式就是函數(shù)的參數(shù)與返回值。而函數(shù)的參數(shù)是更為重要一些。因?yàn)榧兇鉀]有參數(shù)傳入的函數(shù)是很好的。因?yàn)橐獙?shí)現(xiàn)某種功能,處理某些數(shù)據(jù),就要從外界獲得數(shù)據(jù)。

4.2 for 循環(huán)

Groovy 除了支持 Java 的for(int i = 0;i < length;i++)和for(int i :array)形式的循環(huán)語句,還支持以下形式的循環(huán)語句:class Example { static void main(String[] args) { //1 對范圍的for循環(huán)def sum = 0for (i in 0..100){ sum += i}println("0到100的和為:"+sum)//2 對List的循環(huán)def sumList = 0;for (i in [1,2,3,4,5,6,7,8,9,10]){ sumList += i}println("0到10的和為:"+sumList)//3 對Map的循環(huán)def sumMap = 0for (i in ['張三':21,'李四':25,'王五':36]){ sumMap += i.value println i.key}println("他們的年齡和為:"+sumMap) };}它的運(yùn)行結(jié)果為:0到100的和為:50500到10的和為:55張三李四王五他們的年齡和為:82for 循環(huán)是我們每一門編程語言中都有的循環(huán)語句的關(guān)鍵字,我們從上面的代碼示例和輸出中,可以看到 for 循環(huán)其實(shí)非常簡單。它比我么在 Java 或是 C/C++ 中的 for 語句好使用太多了,尤其是對 MAP 和 List 的遍歷。

1.1 定義

集合是一個無序、不重復(fù)的序列,集合中所有的元素放在 {} 中間,并用逗號分開,例如:{1, 2, 3},一個包含 3 個整數(shù)的列表{‘a(chǎn)’, ‘b’, ‘c’},一個包含 3 個字符串的列表

1.1 定義

元組是一個有序的只讀序列,元組中所有的元素放在 () 中間,并用逗號分開,例如:(1, 2, 3),一個包含 3 個整數(shù)的元組(‘a(chǎn)’, ‘b’, ‘c’),一個包含 3 個字符串的元組

2. 小結(jié)

九九乘法表集成了我們之前所學(xué)習(xí)的循環(huán)控制語句以及嵌套循環(huán)的方法??梢愿玫赝ㄟ^實(shí)際的項(xiàng)目來幫助大家理解和掌握循環(huán)控制語句和之前所學(xué)習(xí)的編程知識。這是一次有趣的實(shí)踐。這里還可以看到 C 語言中的屏幕輸出的一些實(shí)際應(yīng)用??梢詭椭蠹腋钜粚哟蔚睦斫?C 語言中的 printf 語句在屏幕顯示上的應(yīng)用。這其實(shí)有點(diǎn)像使用文字處理軟件。只不過在處理重復(fù)輸出時你不用一直玩命地敲擊鍵盤鍵入或者一直使用粘貼復(fù)制,而是只需要將要循環(huán)輸出的內(nèi)容置于循環(huán)語句的控制下即可。

直播
查看課程詳情
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號