[Golang自学] 简单的语法汇总
一、注释
Golang的注释与C/C++类似,使用//和/* */来进行注释。
// 单行注释 /* 多行注释 */
注释的快捷键:Ctrl+/
二、输出
// app.go package main import ( "fmt" ) func main(){ fmt.Print("Hello World!!\n") // 手动换行 fmt.Println("Hello World!!") // 自动换行 fmt.Printf("我的名字是%s,年龄是%d,活力100%%","Leokale",30) }
三、变量
1.变量的声明
基本形式:var 变量名 数据类型 = 变量值
var name string = "Leokale" // 字符串类型 var age int = 30 // 整形变量 var isBoy bool = true // 布尔类型变量
声明和定义分开:
var address string // 变量声明 address = "四川成都" // 变量定义 fmt.Println(address)
2.变量声明简写
var name string = "Leokale" // 完整写法 var name,msg,data string // 同时声明多个变量 var name = "Leokale" // 通过值自动推断变量类型,不用指定string name := "Leokale" // 相当于var name string = "Leokale"
特别注意:当声明全局变量时,不能使用":="的简写形式。
因式分解简写:
var ( name = "Leokale" msg = "你好" age = 30 salary = 100000 gender string )
特别注意:Golang的编译器不允许存在只声明或定义,而不使用的变量。
四、常量
1.常量声明
常量声明和变量几乎一样,只需将var换为const:
const num int = 10001
当对其进行修改时:
2.常量的连续定义
const ( v1 = iota v2 v3 v4 v5 v6 ) fmt.Println(v1, v2, v3, v4, v5, v6) // 打印0 1 2 3 4 5
const ( v1 = iota + 1 v2 v3 v4 v5 v6 ) fmt.Println(v1, v2, v3, v4, v5, v6) // 打印1 2 3 4 5 6
五、输入
1.fmt.Scan和fmt.Scanln
fmt.Scan函数
func main() { var name string // 要求输入一个string类型的name var age int // 要求输入一个int类型的age // 使用fmt.Scan接受两个输入,返回count输入值的数量和err发生的错误 count,err := fmt.Scan(&name, &age) if err == nil { // 如果没有发生错误,则打印输入的值 fmt.Println(name, age) } else { // 如果发生错误,则打印输入的数量和错误信息 fmt.Println("您输入值的个数为:",count,"发生错误:",err) } }
特别说明:使用fmt.Scan时,要求输入两个参数,就必须输入两个参数,否者会一直等待(按回车是没用的)
fmt.Scanln函数
fmt.Scanln与fmt.Scan之间的差别在于,当要求输入多个值时,fmt.Scanln可以使用回车结束输入。
fmt.Scanf函数
不好用,不建议使用fmt.Scanf函数。
2.读取一行输入
reader := bufio.NewReader(os.Stdin) // line,从Stdin中读取的一行数据(字节集合),需要转换为字符串 // isPrefix,表示当此读取是否读取完毕(ReadLine一次只能读取4096个字节),如果读取完毕则为false,如果还有数据,则为true // err,读取的错误信息 line, isPrefix, err := reader.ReadLine() fmt.Println(isPrefix,err) // 将读取到的字节集合转换为string data := string(line) fmt.Println(data)
六、条件语句
1.if语句
if username == "leokale" && password == "123456" { fmt.Println("用户名和密码正确") } else{ fmt.Println("用户名或密码错误") }
golang的条件语句很像Python和C语言的结合。
2.switch语句
var num int fmt.Scanln(&num) switch num { case 1: fmt.Println("输入的num为1") case 2: fmt.Println("输入的num为2") case 3: fmt.Println("输入的num为3") case 4: fmt.Println("输入的num为4") default: fmt.Println("都不对") }
七、循环语句
Golang里面只有一种循环,即for循环。
for i:=0;i<10;i++{ fmt.Println(i) }
八、goto
func main() { name := "leokale" if name == "leokale" { goto VIP } else{ goto NORMAL } VIP: fmt.Println("VIP特权") return NORMAL: fmt.Println("普通用户") return }
golang的goto和C语言一样。
= = !
保持学习,否则迟早要被淘汰*(^ 。 ^ )***