ch3,ch3-01 review

This commit is contained in:
chai2010
2015-12-27 15:13:12 +08:00
parent 7c96bf43e6
commit 6978661750
21 changed files with 67 additions and 63 deletions

View File

@@ -2,7 +2,7 @@
大多數的程序都是處理輸入,産生輸出;這也正是“計算”的定義。但是一個程序要如何穫取輸入呢?一些程序會生成自己的數據,但通常情況下,輸入都來自於程序外部:比如文件、網絡連接、其它程序的輸出、用戶的鍵盤、命令行的參數或其它類似輸入源。下面幾個例子會討論其中的一些輸入類型,首先是命令行參數。
os這個package提供了操作繫統無關跨平與繫統交互的一些函數和相關的變量運行時程序的命令行參數可以通過os包中一個叫Args的這個變量來穫取當在os包外部使用該變量時需要用os.Args來訪問。
os這個package提供了操作繫統無關跨平與繫統交互的一些函數和相關的變量運行時程序的命令行參數可以通過os包中一個叫Args的這個變量來穫取當在os包外部使用該變量時需要用os.Args來訪問。
os.Args這個變量是一個字符串string的slice譯註slice和Python語言中的切片類似是一個簡版的動態數組slice在Go語言里是一個基礎的數據結構之後我們很快會提到。現在可以先把slice當一個簡單的元素序列可以用類似s[i]的下標訪問形式穫取其內容併且可以用形如s[m:n]的形式來穫取到一個slice的子集(譯註和python里的語法差不多)。其長度可以用len(s)函數來穫取。和其它大多數編程語言類似Go語言里的這種索引形式也采用了左閉右開區間包括m~n的第一個元素但不包括最後那個元素譯註比如a = [1, 2, 3, 4, 5], a[0:3] = [1, 2, 3]不包含最後一個元素。這樣可以簡化我們的處理邏輯。比如s[m:n]這個slice0 ≤ m ≤ n ≤ len(s)包含n-m個元素。

View File

@@ -26,7 +26,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
我們隻用了八九行代碼就實現了一個個Web服務程序這都是多虧了標準庫里的方法已經幫我們處理了大量的工作。main函數會將所有發送到/路徑下的請求和handler函數關聯起來/開頭的請求其實就是所有發送到當前站點上的請求我們的服務跑在了8000端口上。發送到這個服務的“請求”是一個http.Request類型的對象這個對象中包含了請求中的一繫列相關字段其中就包括我們需要的URL。當請求到達服務器時這個請求會被傳給handler函數來處理這個函數會將/hello這個路徑從請求的URL中解析出來然後把其發送到響應中這里我們用的是標準輸出流的fmt.Fprintf。Web服務會在第7.7節中詳細闡述。
讓我們在後運行這個服務程序。如果你的操作繫統是Mac OS X或者Linux那麽在運行命令的末尾加上一個&符號,卽可讓程序簡單地跑在後而在windows下你需要在另外一個命令行窗口去運行這個程序了。
讓我們在後運行這個服務程序。如果你的操作繫統是Mac OS X或者Linux那麽在運行命令的末尾加上一個&符號,卽可讓程序簡單地跑在後而在windows下你需要在另外一個命令行窗口去運行這個程序了。
```
$ go run src/gopl.io/ch1/server1/main.go &