Golang练习一

学习Golang的过程中,练习必不可少,俗话说的好 Talk is cheap,show me the code,学完Golang基本语法,是需要适当做一些练习加深理解的,虽然很很很简单!但是本人Java转go,语法还是要多熟悉,秉承多写一遍就多一次理解的原则,开始吧~

  • 练习1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //练习1
    //编写代码分别定义一个整型、浮点型、布尔型、字符串型变量,使
    //用fmt.Printf()搭配%T分别打印出上述变量的值和类型。
    package main

    import (
    "fmt"
    )

    func test1() {
    a := 10
    b := 1.0
    c := false
    d := "哈哈哈"
    fmt.Printf("a的类型为%T\n", a)
    fmt.Printf("b的类型为%T\n", b)
    fmt.Printf("c的类型为%T\n", c)
    fmt.Printf("d的类型为%T\n", d)
    }

    func main() {
    test1()
    }
  • 练习2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //练习2
    //编写代码统计出字符串"hello沙河小王子"中汉字的数量
    package main

    import (
    "fmt"
    "unicode"
    )

    func test2() {
    s := "hello沙河小王子"
    count := 0
    for _, c := range s {
    if unicode.Is(unicode.Han, c) {
    count = count + 1
    }
    }
    fmt.Printf("字符串包含%v个中文", count)
    }

    func main() {
    test2()
    }
  • 练习3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //练习3
    //求数组[1, 3, 5, 7, 8]所有元素的和
    package main

    import (
    "fmt"
    "unicode"
    )

    func test3() {
    arr := [...]int{1, 3, 5, 7, 9}
    count := 0
    for _, v := range arr {
    count = count + v
    }
    fmt.Printf("result:%v", count)
    }

    func main() {
    test3()
    }
  • 练习4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    //练习4
    //找出数组中和为指定值的两个元素的下标,
    //比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
    package main

    import "fmt"

    func test4() (int, int) {
    result := 8
    resultmap := make(map[int]int)
    arr := [...]int{1, 3, 5, 7, 9}
    for index, v := range arr {
    gapv := result - v
    va, ok := resultmap[gapv]
    if ok {
    return index, va
    }
    resultmap[v] = index
    }
    fmt.Println(resultmap)
    return 0, 0
    }

    func main() {
    res1, res2 := test4()
    fmt.Printf("%v,%v", res1, res2)
    }

Talk is cheap,show me the code~