• [Golang自学] 简单的语法汇总


    一、注释

    Golang的注释与C/C++类似,使用//和/* */来进行注释。

    // 单行注释
    
    /*
       多行注释 
    */

    注释的快捷键:Ctrl+/

    二、输出

    // app.go
    package main
    
    import (
       "fmt"
    )
    
    func main(){
       fmt.Print("Hello World!!
    ")  // 手动换行
       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语言一样。

    = = !

    保持学习,否则迟早要被淘汰*(^ 。 ^ )***
  • 相关阅读:
    几种二叉可并堆(详细)
    几种二叉可并堆(详细)
    Winsock编程基础介绍 . 分类: VC++ 2013-09-14 17:30 512人阅读 评论(0) 收藏
    VS2005+WINDDK+Driver Studio 3.2个人总结 分类: VC++ 2013-09-14 17:26 593人阅读 评论(0) 收藏
    用DDK开发的9054驱动 . 分类: windows驱动程序WDM 2013-09-14 17:24 625人阅读 评论(0) 收藏
    arm-linux-gcc下载与安装 分类: arm-linux-Ubuntu 2013-09-11 14:12 698人阅读 评论(0) 收藏
    u盘安装ubuntu10.04 server.txt 分类: arm-linux-Ubuntu 2013-09-11 14:10 882人阅读 评论(1) 收藏
    Makefile的规则 分类: arm-linux-Ubuntu 2013-09-11 14:09 517人阅读 评论(0) 收藏
    学习了LINUX下用C语言遍历文件夹,一些心得 分类: arm-linux-Ubuntu 2013-09-11 14:09 885人阅读 评论(1) 收藏
    dm642的中断定时器 分类: DSP 2013-09-10 14:35 660人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/14656095.html
Copyright © 2020-2023  润新知