设为首页 加入收藏

TOP

Go基础(1)(一)
2019-03-25 14:07:54 】 浏览:230
Tags:基础

基本的概念语法就不写了,直接上代码和分析

 

demo1:

package add

var Name string = "hello world"
var Age int = 10
package main

import (
    "DEMO/test/day2/example2/add"
    "fmt"
)

func main() {

    fmt.Println("Name:", add.Name)
    fmt.Println("Age:", add.Age)

}

分析:

1.调包,需要写GOPATH目录下src目录之后的路径

  比如我电脑的GOPATH:D:\PROJECT\GO_PROJECT

  我的add包目录:D:\PROJECT\GO_PROJECT\src\DEMO\test\day2\example2\add

2.一个文件夹里面只能有一个包,最好同名

3.main函数必须在main包中

4.private变量小写首字母,public变量大写首字母即可

 

demo2:

package add

var Name string = "test"
var Age int = 666

func init() {
    Name = "Hello World!"
    Age = 10
}
package main

import (
    a "DEMO/test/day2/example3/add"
    "fmt"
)

func main() {

    fmt.Println("Name:", a.Name)
    fmt.Println("Age:", a.Age)

}

分析:

1.导入的包可以取别名,比如我这里的a

2.init函数在初始赋值后执行,所以这里应该输出的是helloworld和10

 

demo3:

package main

import (
    "fmt"
)

func modify(a int) {
    a = 10
    return
}

func modity(a *int) {
    *a = 10
    return
}

func main() {
    a := 5
    b := make(chan int, 1)
    fmt.Println("a =", a)
    fmt.Println("b =", b)
    modify(a)
    fmt.Println("a =", a)
    modity(&a)
    fmt.Println("a =", a)
}

分析:

1.依次输出:a = 5,b = 0xc0000160e0,a = 5,a = 10

2.理解修改地址和修改引用的区别

 

demo4:

package main

import "fmt"

func swap(a *int, b *int) {
    temp := *a
    *a = *b
    *b = temp
    return
}

func go_swap(a int, b int) (int, int) {
    return b, a
}

func main() {
    three := 3
    four := 4
    swap(&three, &four)
    fmt.Println("---Swap---")
    fmt.Println("three =", three)
    fmt.Println("four =", four)
    three, four = go_swap(three, four)
    fmt.Println("---Swap---")
    fmt.Println("three =", three)
    fmt.Println("four =", four)
}

分析:

1.两种交换都是正确的

2.理解传统c语言交换函数以及多返回值形式的交换函数

 

demo5:

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func init() {
    rand.Seed(time.Now().UnixNano())
}

func main() {
    fmt.Println("---Generate Random Number---")
    fmt.Println("--Int---")
    for i := 0; i < 3; i++ {
        a := rand.Int()
        fmt.Println(a)
    }
    fmt.Println("---Int(100)---")
    for i := 0; i < 3; i++ {
        a := rand.Intn(100)
        fmt.Println(a)
    }
    fmt.Println("---Float32---")
    for i := 0; i < 3; i++ {
        a := rand.Float32()
        fmt.Println(a)
    }
}

分析:

1.简单的随机数生产程序,学会rand和time的基本使用

2.根据当前的精确时间给rand一个种子,保证随机的不确定性

 

demo6:

package main

import "fmt"

func reverse1(str string) string {
    var result string
    strLen := len(str)
    for i := 0; i < strLen; i++ {
        result += fmt.Sprintf("%c", str[strLen-i-1])
    }
    return result
}

func reverse2(str string) string {
    var result []byte
    tmp := []byte(str)
    lenth := len(str)
    for i := 0; i < lenth; i++ {
        result = append(result, tmp[lenth-i-1])
    }
    return string(result)
}

func main() {
    str := "hello world!"
    result := reverse2(str)
    fmt.Printf("str:%s\nresult:%s\n", str, result)
}

分析:

1.反转字符串的两种形式

 

demo7:

package main

import (
    "fmt"
    "math"
)

func mai
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇windows从0开始学golang 下一篇Go开发之路 -- Go语言基本语法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目