美文网首页
第01天(基本类型、流程控制)_01

第01天(基本类型、流程控制)_01

作者: lucas777 | 来源:发表于2019-11-21 23:06 被阅读0次

01_hello.go

//1) go语言以包作为管理单位
//2) 每个文件必须先声明包
//3) 程序必须有一个main包(重要)
package main

import "fmt"

//入口函数
func main() { //左括号必须和函数名同行
    //打印
    //"hello go"打印到屏幕, Println()会自动换行
    //调用函数,大部分都需要导入包
    /*
        这也是注释, 这是块注释
    */
    fmt.Println("hello go") //go语言语句结尾是没有分号

    fmt.Println("hello itcast")
}

02_hello.go

package main //必须有一个main包

import "fmt" //fmt.Println()

func main() {
    fmt.Println("hello mike")
}

03_变量的使用.go

package main //必须有一个main包

import "fmt" //导入包含,必须要使用

func main() {
    //变量,程序运行期间,可以改变的量

    //1、声明格式   var 变量名 类型, 变量声明了,必须要使用
    //2、只是声明没有初始化的变量,默认值为0
    //3、同一个{}里,声明的变量名是唯一的
    var a int
    fmt.Println("a = ", a)

    //4、可以同时声明多个变量
    //var b, c int

    a = 10 //变量的赋值
    fmt.Println("a = ", a)

    //2、变量的初始化,声明变量时,同时赋值
    var b int = 10 //初始化,声明变量时,同时赋值(一步到位)
    b = 20         //赋值, 先声明,后赋值
    fmt.Println("b = ", b)

    //3、自动推导类型,必须初始化,通过初始化的值确定类型(常用)
    c := 30
    //%T打印变量所属的类型
    fmt.Printf("c type is %T\n", c)

}

04_自动推导类型.go

package main //必须有一个main包

import "fmt"

func main() {
    //赋值,赋值前,必须先声明变量
    var a int
    a = 10 //赋值,可以使用n次
    a = 20
    a = 30
    fmt.Println("a = ", a)

    //:=, 自动推导类型,先声明变量b,再给b赋值为20
    //自动推导,同一个变量名只能使用一次,用于初始化那次
    b := 20
    fmt.Println("b = ", b)

    //b := 30 //前面已经有变量b,不能再新建一个变量b

    b = 30 //只是赋值,可以的
    fmt.Println("b2 = ", b)

}

05_Printf和Println的区别.go

package main //必须有一个main包

import "fmt"

func main() {
    a := 10
    //一段一段处理,自动加换行
    fmt.Println("a = ", a)

    //格式化输出, 把a的内容放在%d的位置
    // "a = 10\n" 这个字符串输出到屏幕,"\n"代表换行符
    fmt.Printf("a = %d\n", a)

    b := 20
    c := 30
    fmt.Println("a = ", a, ", b = ", b, ", c = ", c)
    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}

06_多重赋值和匿名变量.go

package main //必须有一个main包

import "fmt"

//go函数可以返回多个值
func test() (a, b, c int) {
    return 1, 2, 3
}

func main() {
    //  a := 10
    //  b := 20
    //  c := 30

    a, b := 10, 20

    //交换2个变量的值
    var tmp int
    tmp = a
    a = b
    b = tmp
    fmt.Printf("a = %d, b = %d\n", a, b)

    //  i := 10
    //  j := 20
    i, j := 10, 20
    i, j = j, i
    fmt.Printf("i = %d, j = %d\n", i, j)

    i = 10
    j = 20

    //_匿名变量,丢弃数据不处理, _匿名变量配合函数返回值使用,才有优势
    tmp, _ = i, j
    fmt.Println("tmp = ", tmp)

    var c, d, e int
    c, d, e = test() //return 1, 2, 3
    fmt.Printf("c = %d, d = %d, e = %d\n", c, d, e)

    _, d, e = test() //return 1, 2, 3
    fmt.Printf("d = %d, e = %d\n", d, e)
}

相关文章

网友评论

      本文标题:第01天(基本类型、流程控制)_01

      本文链接:https://www.haomeiwen.com/subject/pmvxwctx.html