Loading

fmt、变量、常量

fmt包

fmt包主要用于打印数据,常用的有Printf、Print、Printf

// 文件所属包
package main

// 导入fmt包,主要用于打印数据
import "fmt"

func main() {

	fmt.Println("golang1","golang2")
	fmt.Print("golang1","golang2")
	fmt.Printf("golang") 

}

  • Print和Println区别

    • 一次输出多个值的时候,Println有空格,Print没有
    • Println输出完会自动换行,Print不会自动换行
  • Printf的区别

    • Printf可以格式化输出

    • // 定义一个变量
      var a = "golang"
      // 格式化输出,%v代表用默认格式输出
      fmt.Printf("%v",a)
      
      
      
      // 占位符参考文档 http://docscn.studygolang.com/pkg/fmt/
      

变量声明

在Go语言中,定义变量之后,必须要使用,且同一作用于内不可以重复声明同一个变量

var声明变量
// var 变量名 类型 = 表达式,显示的声明变量的类型
var a int = 1

// 不声明类型 var 变量名 = 表达式,编译器会根据右侧的类型来推断变量的类型
var a =1

// 初始值为空,后续赋值
var a
a = 1

// 一次声明多个类型一致的变量  : var 变量名称,变量名称,类型
var a1,a2 string


// 一次声明多个类型不一致的变量 : var (变量名称, 类型...)
var (
   a int
   b string
)




短变量

在函数内部,可以使用简略的:=方式声明并初始化变量

短变量只能用于声明局部变量,不能用于全局变量的声明

// 变量名 := 表达式  根据表达式的类型推断变量n的类型
n:=10

// 短变量一次声明多个变量
a,b,c := 1,2,"3"

这两种形式的区别在于声明方式的简洁性和是否显式指定变量类型,n := 10 是一种简短的方式,用于在函数内部快速声明和初始化变量。var n = 10 是一种显式声明的方式,用于在任何作用域内声明和初始化变量

匿名变量
  • 使用多重赋值的时候,如果想要忽略某个值,可以使用匿名变量

  • 匿名变量用一个下划线来表示

  • 匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明

// 定义一个方法,返回两个值
func getUserInfo() (string, int) {
	return "user", 18
}



func main() {
 // 使用两个变量接受对应的两个返回值
	var name, age = getUserInfo()
	fmt.Println(name)
	fmt.Println(age)
  
  // 如果只想获取第一个值,不使用第二个值,使用_匿名变量来接受
  var name, _ = getUserInfo()

}

常量

声明常量

Go中使用const声明常量,常量在定义的时候必须赋值,且常量的值后续运行期间无法改变

// 声明一个常量
const Number int = 10
const Name = "木子"

// 声明多个常量, 声明多个常量,如果后面的常量没有赋值,则和前面有值的常量的值相同
// C 和D的值都是8
const (
	A    string = "3"
	B    int = 8
	C 
	D
)
const常量结合iota的使用
  • iota是golang的常量计数器,只能在常量的表达式中使用

  • iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使用iota计数一次,iota可以理解为const语句块中的行索引

  • 每次const出现时,iota初始值都会自增长

const (
	A = iota // 0
	B // 1
  _ // 匿名变量
  D // 4
)


const (
	A = iota // 0
  B = 100 // 100
  C = iota // 2
  D //3

)
posted @ 2024-02-18 17:39  木子七  阅读(8)  评论(0编辑  收藏  举报