02-Golang-变量定义和使用


前言

  • 本篇来学习下golang中的变量定义和使用

变量定义

  • 变量:在程序运行过程中其值能够改变的量成为变量变量存在内存中

  • 变量声明 :var 变量名 数据类型

  • 变量定义:var 变量名 数据类型=值

package main

import "fmt"

func main() {
    
    
	// 声明变量
	// 格式: var 变量名 数据类型
	var a int // 声明变量a,无初始值 默认为0
	
	fmt.Println(a)
}
  • 变量定义

package main

import "fmt"

func main() {
    
    
	 // 定义变量
	// 格式: var 变量名 数据类型 = 变量值
	var a int = 28 // 定义变量
	fmt.Println(a)
}

命名规范

  • 只能以子母或下划线开头
  • 只能使用字母数字下划线
  • 区分大小写
  • 不能使用系统关键字
  • 见名知义
  • 小驼峰式命名法(lower camel case):第一个单词以小写字母开始;第二个单词的首字母大写,例如:aDog
  • 大驼峰式命名法(upper camel case):每一个单字的首字母都采用大写字母,例如:FilstName、LastName

自动推导类型

  • 变量名 := 变量值

package main

import "fmt"

func main() {
    
    

	// 计算圆面积和周长
	//var PI float64 = 3.1415926
	PI := 3.1415926 
	//var r float64 = 2.5
	r := 2.5
	//var s float64
	//var l float64
	// 计算面积
	//s = PI * r * r
	s := PI * r * r
	// 计算周长
	//l = 2 * PI * r
	l := 2 * PI * r

	fmt.Println("面积:", s)
	fmt.Println("周长:", l)

	// 去市场打2斤酱油,单价为 每斤  5元
	w := 2.0
	//p := 5
	var p float64 = 5
	// go语言中不同数据类型不能计算
	fmt.Println(w * p)
}

多重赋值

  • 格式 : 变量1,变量2,… = 值1,值2,…
package main

import "fmt"

func main() {
    
    
	// 格式  变量1,变量2,... = 值1,值2,...
	name, age, city := "大海", 28, "北京"

	fmt.Println(name, age, city)

	// 交换a,b值
	// 1. 通过中间值 temp
	a, b := 10, 20
	//temp := a
	//a = b
	//b = temp
	//fmt.Println(a, b)

	// 2. 加减计算
	//a = a + b
	//b = a - b
	//a = a - b
	//fmt.Println(a, b)

	// 3. 多重赋值交换变量的值
	a, b = b, a
	fmt.Println(a, b)
	
	// _ 匿名变量
	q, _, w := 1, 2, 3
	fmt.Println(q, w)
}

格式化输出

/*
@Time    : 2023/2/5
@Author  : 大海
*/
package main

import "fmt"

func main() {
    
    
	// Println 输出自动换行
	fmt.Println("hello go!")
	fmt.Println(666)
	fmt.Println(3.14)

	// Print 输出不自动换行
	fmt.Print("hello go!")
	fmt.Print(666)
	fmt.Print(3.14)

	// Printf
	name := "大海"
	age := 28
	c := 666
	d := 3.14159
	fmt.Printf("%s\n", name)
	fmt.Printf("%d\n", age)
	fmt.Printf("==%05d==\n", c)
	// %f 默认保留6位小数   %.3f 保留三位小数,对第4位四舍五入
	fmt.Printf("%.3f\n", d)

	// 声明 布尔类型变量,默认为false
	var test bool
	test = true
	fmt.Println(test)
	fmt.Printf("%t\n", test)

	var city string
	city = "北京"
	fmt.Printf("%s\n", city)

	var i byte
	i = 'a'
	fmt.Println(i)      // 输出ASCII码值
	fmt.Printf("%c", i) // 输出字符串
}

接收输入

/*
@Time    : 2023/2/5
@Author  : 大海
*/
package main

import "fmt"

func main() {
    
    
	//var a int
	// & 取地址运算符
	//fmt.Scan(&a)
	//fmt.Println(a)
	 %p 输出一个数据对应的内存地址
	//fmt.Printf("%p", &a)

	// 空格或回车作为接收结束
	//var str string
	//fmt.Scan(&str)
	//fmt.Println(str)

	// 接收两个数据
	var s1, s2 string
	fmt.Scan(&s1, &s2)
	fmt.Println(s1)
	fmt.Println(s2)

}

猜你喜欢

转载自blog.csdn.net/IT_heima/article/details/128892899