[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语言一样。

 

= = !

posted @ 2021-04-14 01:13  风间悠香  阅读(284)  评论(0编辑  收藏  举报