Golang基本結構之練習(day2)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

筆記:

1. 任何一個代碼檔案隸屬於一個包2. import 關鍵字,引用其他包:import(“fmt”)import(“os”)通常習慣寫成:import (      “fmt”       “os”)3. golang可執行程式,package main,     並且有且只有一個main入口函數4. 包中函數調用:a. 同一個包中函數,直接調用b. 不同包中函數,通過包名+點+函數名進行調用5. 包存取控制規則:大寫意味著這個函數/變數是可匯出的小寫意味著這個函數/變數是私人的,     包外部不能訪問

練習:

package main/*算出結果是:0+10=101+9=102+8=103+7=104+6=105+5=106+4=107+3=108+2=109+1=1010+0=10 */import "fmt"func list(n int) {    for i := 0; i <= n; i++ {        fmt.Printf("%d+%d=%d\n", i, n-i, n)    }}func main() {    list(10)}

2. 一個程式包含兩個包add和main,其中add包中有兩個變數:Name和age。請問main
包中如何訪問Name和age?

package mainimport (    //包別名的用法  a    "fmt"    a "go_dev/day2/example2/add")func main() {    fmt.Println("Name=:", a.Name)    //add.age是小寫 私人變數,所以找不到    fmt.Println("age=:", a.Age)} 
main.go
package addimport (    //_"go_dev/day2/example2/test")func init() {    Name = "hello world"    Age = 10}var Name string = "xxxxx"var Age int = 66
View Code

3. 包別名的應用,開發一個程式,使用包別名來訪問包中的函數?

答案同2題

4. 每個源檔案都可以包含一個init函數,這個init函數自動被go運行架構調用。開發一個程式
示範這個功能?

目錄結構

package mainimport (    //包別名的用法  a    "fmt"    a "go_dev/day2/example2/add")func main() {    //5 列印add中的    fmt.Println("Name=:", a.Name)    //add.age是小寫 私人變數,所以找不到    //6    fmt.Println("age=:", a.Age)}
main.go
package testimport "fmt"var Name string = "This is test package"var Age int = 1000func init() {    //1    fmt.Println("this is a test,init")    //2    fmt.Println("test.package.Name=", Name)    //3    fmt.Println("test.package.Age=", Age)    Age=10    //4    fmt.Println("test.package.age=",Age)}
test.go
package addimport (    _"go_dev/day2/example2/test")func init() {    Name = "hello world"    Age = 10}var Name string = "xxxxx"var Age int = 66
add.go

 

6. 定義兩個常量Man=1和Female=2,擷取目前時間的秒數,如果能被Female整除,則
在終端列印female,否則列印man。

Second := time.Now().Unix()
package mainimport (    "fmt"    "time")const (    Man = iota + 1    Female)/*6. 定義兩個常量Man=1和Female=2,擷取目前時間的秒數,如果能被Female整除,則    在終端列印female,否則列印man。Second := time.Now().Unix() */func main() {    //for 就是個死迴圈    for {        time.Sleep(100000 * time.Microsecond)        second := time.Now().Unix()        if second%Female == 0 {            fmt.Println("female")        } else {            fmt.Println("man")        }    }}
main.go

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.