• GO语言结构、变量和常量


    第三章 GO语言结构

    结构

    • package main // 声明一个 main 包
      
      import "fmt" // 导入 fmt 包,打印字符串使用
      
      func main() { // 声明 main 主函数
      	fmt.Println("Hello World!") // 打印 Hello World!
      }
      
      // 单行注释
      
      /*
      多行注释/块注释
      */
      

    执行

    • 在终端中执行go run hello.go 即可运行代码
    • 或者执行go build ,则会生成一个可执行的二进制代码文件(.exe文件),这是编译后的文件,执行 ./编译后的文件即可

    备注

    • go语言的花括号不能单独放在一行,必须放在一个函数或者其他语句后面,否则会有编译错误
    • 一行代码表示一句,不需要末尾加分号
    • fmt.Println()不能放在函数体外面
    • 函数体外可以声明变量,但不能作赋值操作
    • 如果函数体中作了赋值却没有用到,也会出现编译错误

    格式化

    • go文件中缩进使用tab或者空格或者混用都行,只要在终端中输入go fmt hello.go即可自动帮你格式化
      • 一般保存时软件会自动执行格式化语句,不需每次都执行

    第四章 Go语言之变量和常量

    变量

    变量的声明

    • 标准格式声明

      • var 变量名 变量类型
        
        //如:
        var name string
        var age int
        var isOk bool
        
    • 批量声明

      • var (
            a string
            b int
            c bool
        )
        

    变量的初始化

    • 标准格式

      • var 变量名 类型 = 表达式
        
        // 如:
        var name string = "Hello"
        var age int = 18
        
        // 一次初始化多个变量
        var name,age = "Hello",18
        
    • 类型推导

      • 解释器根据我们的赋值自动推导出变量的类型

      • var name = "Q1mi"
        var age = 18
        
    • 短变量声明

      • 在函数体内部使用:=声明局部变量并初始化(只能用在函数体内

      • package main
        
        import (
        	"fmt"
        )
        // 全局变量m
        var m = 100
        
        func main() {
        	n := 10
        	m := 200 // 此处声明局部变量m
        	fmt.Println(m, n)
        }
        
    • 匿名变量

      • 使用 _ 来声明一个匿名变量

      • func main() {
        	x, _ := foo()
        	_, y := foo()
        	fmt.Println("x=", x)
        	fmt.Println("y=", y)
        }
        
        // _ 接收其他不需要的返回值
        
      • 匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

    常量

    常量的声明

    • 标准声明

      • const pi = 3.1415
        const e = 2.7182
        
    • 批量声明

      • const (
            pi = 3.1415
            e = 2.7182
        )
        
      • const同时声明多个常量时,如果省略了值则表示和上面一行的值相同

        • const (
             n1 = 100
             n2
             n3 = 200
             n4
          )
          
          >>>
          100 100 200 200
          

    iota

    • iota是go语言的常量计数器,只能在常量的表达式中使用

    • iota在const关键字出现时将被重置为0;const中每新增一行(不是每声明一个变量)常量声明将使iota计数一次

      • const (
        		n1 = iota   //0
        		n2          //1
        		n3          //2
        		n4          //3
        	)
        
    • 使用_跳过某些值

      • const (
        		n1 = iota //0
        		n2        //1
        		_
        		n4        //3
        	)
        
    • iota声明中间插队

      • const (
        		n1 = iota //0
        		n2 = 100  //100
        		n3 = iota //2
        		n4        //3
        	)
        	const n5 = iota //0
        
    • 定义数量级

      • const (
        		_  = iota
        		KB = 1 << (10 * iota)  // 1 << 10
        		MB = 1 << (10 * iota)  // 1 << 20
        		GB = 1 << (10 * iota)  // 1 << 30
        		TB = 1 << (10 * iota)  // 1 << 40
        		PB = 1 << (10 * iota)  // 1 << 50
        	)
        
      • <<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024

    • 多个iota定义在一行

      • const (
        		a, b = iota + 1, iota + 2 //1,2
        		c, d                      //2,3
        		e, f                      //3,4
        	)
        
        // 相当于
        const (
        		a, b = iota + 1, iota + 2  //1,2
        		c, d = iota + 1, iota + 2  //2,3
        		e, f = iota + 1, iota + 2  //3,4
        	)
        
    世上只有10种人,一种懂二进制,一种不懂二进制
  • 相关阅读:
    thinkphp使用ajax程序报500错误
    非隐藏转发和隐藏转发的区别及选择
    表单文件(图片)上传到服务器,权限自动变成363,无法访问
    我收到了互联网应急中心的通报!记sqlmap的正确打开方式。
    css字体可以小于12px!被小米官网打脸
    阿里云CDN添加域名80端口和443端口什么区别?
    网站使用海外服务器,国内访问很慢的解决方案
    linux下设置php文件不区分大小写
    国际化
    Spring boot2.0学习笔记(一)
  • 原文地址:https://www.cnblogs.com/zlxuan/p/12455437.html
Copyright © 2020-2023  润新知