學習go語言 我的習題答案 chapter3

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 這章節主要講的是go中函數使用 在做習題過程中碰到的幾個比較值得紀念的問題是 定義了命名返回函數 但是沒有把它放在括弧裡面 結果一直編譯通不過 但是一眼看過去還是不知道怎麼錯了A
還有一個給我深刻印象的就是go的強型別檢查 以及變數的申明方式 和c/c++區別比較明顯的就是定義array 之前好像看過c/c++中的指標定義 那個*放在哪裡的問題 還有就是數組[]應該放在哪裡比較合適 在go中資料類型全都後置 比如: var test_var int test_var這個變數的類型是int 這個變數申明如果是在函數體外的 那麼var就必不可少 但是在函數內部可以使用 := 來定義 這個和=還是有區別的 定義和賦值完全分開 越寫越覺得是c/c++的升級版本 呵呵
package mainimport (        "fmt"        "strings")func main() {        /*        for i := 1; i<=100; i++ {                fmt.Println(strings.Repeat("A", i))        }        for i := 1; i<=100; i++ {                switch {                case i%3==0 && i%5==0 :                        fmt.Println("FizzBuzz")                case i%5==0:                        fmt.Println("Buzz")                case i%3==0:                        fmt.Println("Fizz")                default:                        fmt.Println(i)                }        }        for i := 0; i<10; i++ {                fmt.Println(i)        }        var i int        LOOP:            if i < 10 {                    fmt.Println(i)                    i += 1                    goto LOOP            }        var arr [10]int        for i := range arr {                fmt.Println(i)        }        */}pengphy@Pengfei-Xue dsproxy_go$ cat chapter3.go package mainimport (        "fmt")func getOrderedArg(a,b int) (small, big int) {        small = a        big = b        if a > b {                small = b                big = a        }        return}func float64Mean(data_in []float64) (mean float64) {        data_in_len := len(data_in)        if data_in_len == 0 {            return 0.0        }        sum := 0.0        for _, value := range data_in {                sum += value        }        mean = sum / float64(data_in_len)        return}type Stack []intfunc (s Stack) push(value int) Stack {        if len(s)+1 > cap(s) {                fmt.Println("stack is full, can not store more")        }        s = append(s, value)        return s}func (s Stack) pop() (st Stack, value int) {        if len(s) == 0 {                fmt.Println("Stack is empty, can not pop")        }        value = s[len(s)-1]        st = s[:(len(s)-1)]        return}func main() {        /*        s := make(Stack, 0, 20)        fmt.Println(s)        s = s.push(32)        fmt.Println(s)        s, value := s.pop()        fmt.Println(value)        fmt.Println(s)        fmt.Println(getOrderedArg(1,2))        fmt.Println(getOrderedArg(4,2))        test_float64_slice := [...]float64{0.0,1.0,2.3232,4e-5,43.00}        fmt.Println(float64Mean(test_float64_slice[:]))        for i:= 0; i<10; i++ {                defer fmt.Println(i)        }        */}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.