1、变量的定义与赋值:
注意:变量中的值发生改变,内存地址不变
定义字符类型:var name string = “值”
定义整数类型:var age int = 值
定义多个变量:var (
namestring
ageint
addrstring
)
定义多个相同类型的变量:var 变量名1,变量名2,变量名3 int = 1,2,3
快速定义变量方式: name := 值, 只能是刚开始赋值时使用,后面在进行赋值需要用=来赋值
变量的命名规则遵循小驼峰命名法
2、输入输出:
1)输入输出方式:
输入、输出 | 解释 |
fmt.Println() | 打印并换行 |
fmt.Printf() | 格式化输出 |
fmt.Print() | 打印输出 |
fmt.Scanln() | 接收输入并换行 |
fmt.Scanf() | 接收格式化输入 |
fmt.Scan() | 接收输入 |
2)格式话输入输出功能强大,打印接收每种类型需要用不同符号代替:
%+v 打印值的同时,带上字段名,比如结构体
fmt.Printf("%+v\n",p) //{Name:rao Age:12}
%#v 打印值的同时带上类型
fmt.Printf("%#v\n",p) //main.Person{Name:"rao", Age:0xc}
%T 打印类型
fmt.Printf("%T\n",p) //main.Person
%t 布尔型,true或false。
%b 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2
fmt.Printf("%b\n",14) //1110
fmt.Printf("%b\n",-14) //-1110
%c 打印单个字符
%d 整型
%o 以八进制表示的数字(基数为8)
fmt.Printf("%o\n",9) //11
%q 使用GO语法以及必须时使用转义,以双引号括起来的字符串或者字节切片
%x 表示为十六进制,使用a-f
fmt.Printf("%x\n",255) //ff
%X 表示为十六进制,使用A-F
fmt.Printf("%X\n",255) //FF
%U 表示为Unicode格式:U+1234,等价于"U+%04X"
%s 字符串
%f 浮点型或者复数值
%e 以科学计数法e表示的浮点数或者复数值
%E 以科学计数法E表示的浮点数或者复数值
%p 以十六进制表示,前缀为ox,可以用来取变量的地址
fmt.Printf("%p\n",&p) //0xc000004078
例子:
package main
import "fmt"
func main(){
var x int
var y string
var a bool
var b float64
//输出
fmt.Println("输入一个数字:")
//用&绑定变量的内存地址,获取用户输入数据存入变量x中
fmt.Scanln(&x)
fmt.Println("输入一个字符串:")
fmt.Scanln(&y)
fmt.Println("输入一个小数:")
fmt.Scan(&b)
fmt.Println("输入1或0:")
//格式化输入
fmt.Scanf("%t", &a)
//格式化输出,每种数据类型不同,%d代表整数,%s字符串,%t布尔,%f是浮点型
fmt.Printf("%d,%s,%t,%f", x,y,a,b)
}
注:有错误请指出,谢谢!