第01天(基本类型、流程控制)_01
2019-11-21 本文已影响0人
lucas777
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)
}